2012-09-22 74 views
0

最近我的網站遭到了一些垃圾郵件客戶的攻擊,一些基本上是隨機的亂碼,不能真正以任何有意義的方式過濾(沒有一些非常嚴肅的工作),但一個我發現的不一致在他們的引用字符串中。Block invalid referer

[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。

回答

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

這沒有把戲。如果遇到類似的情況,這非常有用。