很抱歉,如果之前有人问过这个问题,但我现在已经研究了好几个小时,没有真正明确的答案。
我正在开发一个过去存在严重安全漏洞的网站。这些已被修复(我不断检查以确保没有其他人),但该网站正在受到机器人的打击。我已经在PHP中使用第三方实施了一些检查以禁止已知的垃圾邮件IP地址,我已经阻止了引用者,例如.htaccess中的semalt,这已经大量帮助,但这还不够。
因为问题非常严重,我需要花费很长时间(每天工作时间)来手动阻止IP,主机名等,所以我想采取更积极的方法。我没有阻止具体的细节,而是通过htaccess让我想要的东西: - 谷歌,MSN,雅虎等好机器人 - 任何拥有主机名的人。
我意识到这仍然会让一些坏机器人通过,但大多数流量来自没有主机名的机器人,所以这将是一个良好的开端。
我有两个问题:
1)有没有更好的方法来解决这个问题?
2)如果没有,我该如何实现?
这是我到目前为止(我有一个更大的浏览器列表),但它似乎不起作用:
#allow just search engines we like, we're OPT-IN only
#a catch-all for Google
BrowserMatchNoCase Google good_pass
BrowserMatchNoCase Slurp good_pass
BrowserMatchNoCase ^Yahoo good_pass
BrowserMatchNoCase ^msnbot good_pass
BrowserMatchNoCase SandCrawler good_pass
BrowserMatchNoCase Teoma good_pass
BrowserMatchNoCase Jeeves good_pass
#allow Firefox, MSIE, Opera etc., will punt Lynx, cell phones and PDAs, don't care
BrowserMatchNoCase Chrome good_pass
BrowserMatchNoCase Mozilla good_pass
#Let just the good guys in, punt everyone else to the curb
#which includes blank user agents as well
Order Deny, Allow
Deny from all
Allow from env=good_pass