現在注冊機到處泛濫,我的Drupal站點被機器惡意注冊得厲害,下面是我的解決方案,分享出來或者能某些人有幫助.
我的Drupal站點上發現有很多@sina.com的垃圾注冊,雖然已經開啟了honeypot模塊,沒有屏蔽住此類注冊。
分析:攻擊者可能比較熟悉honeypot的工作機制,可以自己編寫相應的腳本實現惡意注冊.
在Drupal系統中,默認情況下,用戶注冊都會有日志記錄,保存在watchdog表中,通過分析watchdog表中的關于用戶的日志的情況,可以統計出相應的信息供參考,然后通過user block模塊或其他相應模塊屏蔽該惡意IP的注冊.
解決步驟:在任意mysql客戶端執行如下sql語句:
select count(hostname) as count, hostname from watchdog where type="user" group by hostname order by count desc;
可以得到類似如下的統計結果:
| count | hostname |
可以看到在173.208.222.0/24這個IP段有大量的訪問,在www.ip138.com查詢,得知該ip位于美國,由于網站主要面向中國用戶,基本可以判斷這就是惡意注冊的ip來源.
Drupal默認的ip屏蔽策略不支持針對IP段的屏蔽,可以使用ip ranges模塊實現基于ip段的屏蔽.
額外的思考:使用Drupal模塊的方式進行屏蔽,可以僅通過鼠標點擊的方式解決問題,比較輕松,同時可以開放權限給相關人員,減輕開發者負擔.
最好的方式,是在服務器層進行屏蔽,nginx與apache都有相應的配置可以實現針對指定IP與IP段的屏蔽訪問,這種方式對系統資源消耗較小,缺陷是配置比較麻煩,需要登錄服務器進行操作.
這里再推薦一款中國驗證碼模板,如果你的Drupal站點是面向中文用戶的話.
https://www.drupal.org/project/chinese_captcha
新聞熱點
疑難解答