前天晚上,我遭到了垃圾留言廣告的襲擊。
晚上我剛去打了2個小時游戲,就有人用程序狂灌我幾百個垃圾留言廣告。這時我也發現目前的防垃圾留言系統存在漏洞,那個發廣告的家伙先用程序偽造了refer,然后每篇文章只有一個鏈接,這樣就繞過了我設置的過濾,達到了大量發送垃圾信息的目的。
看來我目前的反垃圾留言程序還是有問題的。于是我經過一晚上的重新編碼,增加了一個自動封IP地址的功能,如果判斷半個小時內同一個IP地址留言中包含的超級連接數目超過10,就判斷其為垃圾留言發送者,系統就自動封其IP地址,阻止這個IP地址繼續發送留言。
現在看看目前的反垃圾系統是否能較好工作,如果還不行的話,只好啟動驗證碼了,雖然個人感覺驗證碼會降低用戶體驗。這個反垃圾廣告插件是基于原版Z-Blog 1.5系統的,如果你也在用Z-Blog 1.5這個系統,也可以下載使用,對于1.6的測試版,本程序應該也可以使用,不過我沒測試過。
點擊這里下載:Z-Blog反垃圾廣告插件(百度搜索下)。
另外對于垃圾引用,我也想到一個新的對策,就是當系統接收到一個引用的時候,先取得那個地址的內容,如果包含本站的鏈接,說明是正常引用,否則就是垃圾引用。
最后對于圖片的盜鏈,我終于無法繼續忍受了,添加水印的方法基本上沒有任何作用,過了這么長時間,盜鏈的情況依舊沒有減少,盜鏈占用了太多的流量和系統資源,每天占用了10G多的流量,嚴重影響了我的博客的正常用戶訪問,因此我只好啟用了ISAPI_Rewrite這個最終殺手來防止盜鏈,不過目前我允許bloglines、zhuaxia、google、baidu這幾個網站引用我站圖片,如果你也需要引用我站圖片,請把域名告訴我,我審核后可以開放。
ISAPI_Rewrite的httpd.ini內容寫的是下面內容,如果你也遇到盜鏈的困擾,建議可以參考一下:
RewriteCond Host: (.+)
RewriteCond Referer: (?!http://(?:www.xxxxxxx.info|www.moon-blog.com|www.bloglines.com|www.zhuaxia.com|www.google.com|cache.baidu.com)).+
RewriteRule .*.(?:jpg|kmz|kml|zip) /block.gif [I,O]
注釋:第二行里面的域名是允許鏈接圖片的網站列表,目前我允許我自己的兩個站和另外bloglines、zhuaxia、google、baidu這四個網站引用我站文件,其他網站的引用被禁止。
第三行是禁止引用的文件類型,包括jpg圖片、Google Earth的kmz和kml、zip文件。當然,還可以增加其他類型,比如gif、rar等,因為我站沒有那些文件,所以沒有添加上去。
更新:晚上看了一下IIS日志,圖片目錄占用流量降到了1.5G,一天時間ISAPI_Rewrite阻擋了3萬4千次盜鏈請求,真是個不錯的成績啊。