0

最近我的网站受到一些人的攻击,他们的机器人发送垃圾 HT​​TP 请求,一切基本上都是随机的胡言乱语,无法以任何有意义的方式过滤(没有一些非常认真的工作),但我发现的一个不一致之处在于他们引用字符串。

[22/Sep/2012:03:27:50 +0000] "GET /vb/ HTTP/1.0" 403 345 "1mc9py1amv.net" "Mozilla/3.0 (compatible; NetPositive/2.2)"

如您所见,他们的 ref 没有协议。有什么方法可以阻止没有协议的引用,同时仍然允许空白(无)引用的东西进入网站?

像,如果它包含“http”或“https”或者是空白的,它会允许,但其他一切都被拒绝?

我尝试了类似的东西

$HTTP["referer"] !~ "(http://.*|-)" {
    url.access-deny =  ( "" )
}

但是那禁止空白参考并且不允许https。

4

1 回答 1

2
    $HTTP["referer"] !~ "^($|https://.*|http://.*)" {
            url.access-deny =  ( "" )
    }

这成功了。如果您遇到类似的事情,这将非常有用。

于 2012-09-22T04:11:49.590 回答