最近我的网站受到了一些有垃圾邮件HTTP请求的机器人的攻击,一切都基本上是随机乱码,无法以任何有意义的方式进行过滤(没有一些非常严肃的工作),但我找到了一个不一致在他们的引用字符串中。
[22/Sep/2012:03:27:50 +0000] "GET /vb/ HTTP/1.0" 403 345 "1mc9py1amv.net" "Mozilla/3.0 (compatible; NetPositive/2.2)"
如你所见,他们的参考没有协议。有没有办法阻止参考没有协议,同时仍然允许空白(无)引用的东西进入网站?
有些东西,如果它包含“http”或“https”或是空白,它会允许,但其他一切都被拒绝了?
我试过像
这样的东西$HTTP["referer"] !~ "(http://.*|-)" {
url.access-deny = ( "" )
}
但禁止空白参考并且不允许使用https。
答案 0 :(得分:2)
$HTTP["referer"] !~ "^($|https://.*|http://.*)" {
url.access-deny = ( "" )
}
这就是诀窍。如果你遇到过类似的东西,它会非常有用。