apache - mod_security 960015 阻止 Google 和其他好的机器人

标签 apache security bots mod-security

mod_security 规则 960015 不断捕获 Google 和其他优秀机器人。 我在虚拟主机中有以下内容来防止好的机器人被捕获:

SecRule REQUEST_HEADERS:User-Agent "Mail.ru" log,allow
SecRule HTTP_USER_AGENT "Mail.RU_Bot" log,allow

Google 和 Yandex 也是如此。

它在 99% 的情况下都能工作,但有时会因为一些非常奇怪的原因而失败,以下是 Mail.ru 机器人的日志示例:

成功:

217.69.134.79 - - [07/Mar/2014:10:17:13 +0400] "GET / HTTP/1.1" 200 189934 "-"
"Mozilla/5.0 (compatible; Linux x86_64; Mail.RU_Bot/Fast/2.0; 
+http://go.mail.ru/help/robots)"

[Fri Mar 07 10:17:13 2014] [error] [client 217.69.134.79] ModSecurity: Access 
allowed (phase 2). Pattern match "Mail" at REQUEST_HEADERS:User-Agent. 
[file "/etc/apache2/sites-enabled/xxx"] [line "28"] [hostname "xxx"] 
[uri "/"] [unique_id "UxlkaQp-d4EAABU9BSIAAAAV"]

下一分钟就失败了:

217.69.134.79 - - [08/Mar/2014:02:14:19 +0400] "GET / HTTP/1.1" 403 389 "-" "
Mozilla/5.0 (compatible; Linux x86_64; Mail.RU_Bot/2.0; +http://go.mail.ru/
help/robots)"

[Sat Mar 08 02:14:19 2014] [error] [client 217.69.134.79] ModSecurity: Access 
denied with code 403 (phase 2). Operator EQ matched 0 at REQUEST_HEADERS. 
[file "/usr/share/modsecurity-crs/activated_rules/
modsecurity_crs_21_protocol_anomalies.conf"] [line "47"] [id "960015"] 
[rev "2.2.5"] [msg "Request Missing an Accept Header"] [severity "CRITICAL"] 
[tag "PROTOCOL_VIOLATION/MISSING_HEADER_ACCEPT"] [tag "WASCTC/WASC-21"] 
[tag "OWASP_TOP_10/A7"] [tag "PCI/6.5.10"] [hostname "xxx"] [uri "/"] 
[unique_id "UxpEuwp-d4EAAEMnBFQAAAAE"]

我知道正确的方法是进行反向查找,但是它们会减慢网站速度,我希望至少有一些安全性,但目前无法使用 960015,因为它阻止了 Google 和其他人。同时,这是一个非常有用的规则,捕获了数百个不良机器人。

如果有人知道如何设置反向查找,使其真正起作用并允许 Google 和其他优秀的机器人建立索引 - 欢迎您在这里发帖。然而,我也在寻找一种快速而肮脏的解决方案以使其立即发挥作用,因为一些安全性比没有安全性要好。

最佳答案

这是我使用的解决方案,运行了 48 小时,Google 顺利通过,而 100 个坏人被阻止,将其放入 vhost 文件中:

SecRule REQUEST_HEADERS:User-Agent "Google|Mail|Yandex" "phase:1,t:none,allow,nolog,ctl:ruleRemoveById=960015"

关于apache - mod_security 960015 阻止 Google 和其他好的机器人,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22262331/

相关文章:

php - htaccess 重写规则在提交表单时导致错误

java - tomcat重启后数据库未连接,需要重新加载项目

forms - HTTPS Laravel 中的安全路由

c# - Discord 机器人只显示不和谐版本

c# - 'stream.ReadTimeout' 抛出 'System.InvalidOperationException' 类型的异常,将照片发送到 Telegram Bot

linux - 301 所有 404 到主页

css - 禁用特立尼达自动添加样式表

security - 带有 Parse.com 客户端 key 和应用程序 ID 的开源代码安全吗?

c# - 调试代码安全 .net 框架以使用 caspol.exe

python - 机器人计数命令不一致