Protection Spam Control for PHP<\/a>.<\/p>\nPlease report all bugs.<\/p>\n
It is a new program. I have not yet ported all the anti-spam methods, but I am working on it.<\/p>\n
To make it work you need to unzip the file and copy the protection folder where your program will be able to get to it.<\/p>\n
You must then modify any programs that you need to protect with the line:<\/p>\n
require_once(“protection\/protection.php”);<\/p>\n
Naturally you would need to change the line to reflect the actual location of the protection folder.<\/p>\n
Protection protects against
\n1) missing Accept or Host headers
\n2) blacklisted user agents (you may want to edit the list in modules\/chkagent if you rely on anything other than Google, Bing and Yahoo.)
\n3) blocks malicious hits that use eval() or a common sql injection string.
\n4) checks to see if http_referer is correct for form submits
\n5) check for known spam servers
\n6) session speed check.
\n… more to come.<\/p>\n
It also checks for good hits so it does not block google, cloudflare, paypal, etc.<\/p>\n
Please test and report problems. I will add more modules as I get them.<\/p>\n
New Version 10\/28 – found a bunch of errors this morning. It still worked, but I cleaned up the errors. I added Speed Check set it to 2 seconds for a form submit, but I may reduce to 1 second. (I locked myself out at three seconds because I use firefox passwords and just clicked submit – no good.)<\/p>\n","protected":false},"excerpt":{"rendered":"
For a long time I’ve needed a version of my WordPress Stop-Spammers plugin that will work on sites that don’t use WordPress. I have a dozen sites that are based on custom php code that need protection, but I’ve never really addressed the problem. I am testing a set of programs that I call “Protection” […]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"open","ping_status":"closed","template":"","meta":[],"_links":{"self":[{"href":"http:\/\/blogseye\/wp-json\/wp\/v2\/pages\/1028"}],"collection":[{"href":"http:\/\/blogseye\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"http:\/\/blogseye\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"http:\/\/blogseye\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/blogseye\/wp-json\/wp\/v2\/comments?post=1028"}],"version-history":[{"count":6,"href":"http:\/\/blogseye\/wp-json\/wp\/v2\/pages\/1028\/revisions"}],"predecessor-version":[{"id":1034,"href":"http:\/\/blogseye\/wp-json\/wp\/v2\/pages\/1028\/revisions\/1034"}],"wp:attachment":[{"href":"http:\/\/blogseye\/wp-json\/wp\/v2\/media?parent=1028"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}