阻止无效的引用者

时间:2012-09-22 03:54:45

标签: config lighttpd ddos

最近我的网站受到了一些有垃圾邮件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。

1 个答案:

答案 0 :(得分:2)

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

这就是诀窍。如果你遇到过类似的东西,它会非常有用。