The script needs to be included at the top of other PHP pages.
It should work with any PHP website, CMS, Blog, or Forum, and is designed to be completely invisible to other PHP scripts.
If no problem is found with a connection, it lets the script continue as before. If a problem is found:
It pauses a bit to slow down agressive bots.
It then generates a 403 Forbidden page, with the reason for the block and connection details.
It goes on to write the same data as above to a log file. Great for seeing if the protection needs to be modified due to accidental catching.
It then halts all execution, and kills the connection.
Here are some key features of "ZB Block":
It is able to checks for:
· Known bad client hosts;
· Known bad client IPs ( Both singular, and ranges noted in standard decimal quadot (www.xxx.yyy.zzz) );
· Bad query input ( $_GET ) (Somewhat heuristic enhancement as it looks at behaviors);
· Bad POST input ( $_POST );
· Bad "Pathing" such as http://yoursite.tld/somepage.php/http://theirsite.tld/somebadpage.php
· Remote file include hacks;
· MySQL injections;
· http injections;
· Known bad keywords in the query;
· Known bad user clients.
What's New in This Release: [ read full changelog ]
· Multiple new time formats. Choose inside of zbblock.ini.
· Permanent ban immunity for known good crawlers.
· Regular Expression Match. Use with care to make sure nothing will be executed.
· IP Permanent Bans Database split into 2 files.
· File writes now done in burst mode to reduce overlapping log writes caused by DoS hammering.
· User agent now stored in a variable for more consistent updating.