2013-02-20 78 views
0

我們已經成爲在WordPress網站上惡意DDOS攻擊的受害者。使用.htaccess防止DDOS攻擊無法使用固定鏈接

謝天謝地,它們應該很容易被刪除,因爲它們是GET請求,並在URL末尾附加了字符串?ptrxcz。

考慮到這一點,我們已經建立了規則,爲使用.htacess完成此操作的請求提供403個權限錯誤頁面。麻煩的是,這些似乎並沒有安裝永久鏈接。

這是我的完整.htaccess文件。

RewriteEngine On 
RewriteCond %{QUERY_STRING} .*ptrxcz.* 
RewriteRule (.*) - [F] 

# BEGIN WordPress 

<IfModule mod_rewrite.c> 
RewriteEngine On 
RewriteBase/
RewriteRule ^index\.php$ - [L] 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule . /index.php [L] 
</IfModule> 

# END WordPress 

開始部分是將用戶重定向與ptrxcz到403頁。如果我刪除它下面的WordPress規則,這完美地工作,但包括它在內,它永遠不會工作。

無奈的使用與QUERY_STRING搜索負正則表達式工作在反向正常,除了查詢字符串請求(阻斷一切,像這樣:!

RewriteCond %{QUERY_STRING} !.*ptrxcz.* 

(注意加)

沒有人有任何想法:

  1. 爲什麼它不與固定鏈接工作
  2. 我怎樣才能使其與燙髮工作alinks
  3. 爲什麼查詢字符串的負面正則表達式有效,但不是正面的。
+2

彼得,請回答您自己的問題,所以它的「未答覆」名單上沒有掛起..你知道[*** 5G黑名單***](http://perishablepress.com/5g-blacklist-2013/)嗎? – brasofilo 2013-02-20 18:05:51

+0

對不起,隊友。它說我不能回答我自己的問題8小時... – 2013-02-21 09:02:51

回答

0

如果您在上面的代碼中使用THE_REQUEST替換QUERY_STRING,那麼此工作正常,並且完全按照WordPress中的要求進行操作。

1

我有同樣的問題,但它足夠嚴重,我提出了一個小型Web服務器作爲前端和篩選出這些請求。有關iptables的規則是:

的iptables -A INPUT -p根據tcp --dport 80 -m串--to 70 --algo BM --string 'ptrxcz_' -j DROP

它指示系統檢查請求的前70個字符,如果找到'ptrxcz_',則默認放棄請求。我試着返回一條錯誤消息,但錯誤代碼消耗的帶寬不值得考慮,因爲在連接的另一端永遠不會有用戶讀取錯誤。

我創建了一個博客帖子描述我所採取的步驟:

http://web.htcomp.net/?pageid=85&blogid=2

拉里

+0

感謝您輸入拉里...感謝我的不是很糟糕,我可以用簡單的.htaccess規則阻止它,但如果它回來更強,然後感謝擡起頭! – 2013-04-22 17:45:58