Mod-Rewrite
數千個不存在域的請求作為 HTTP_REFERER
在過去的幾天裡,我的一個網站**每分鐘收到數百個請求,**其中不存在
HTTP_REFERER
來自不同 IP 的隨機域(因此deny from IP
不能使用):REMOTE_ADDR | HTTP_REFERER | HTTP_USER_AGENT 95.133.126.178 | 1dljlc2jm2.info | Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; QihooBot 1.0 qihoobot@qihoo.net) 188.232.31.38 | 3r28169e6v4.net | Mozilla/5.0 (compatible; ShunixBot/1.x; http://www.7vlc8pngqk7zmx.com/bot.htm) 177.184.135.114 | 3p10jjujbn.ru | Mozilla/5.0 (compatible; Bot; +http://w4n2e2mte8.ws/spamfilter 188.235.184.231 | 06d94hx.biz | Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; iRider 2.21.1108; FDM) 42.119.240.12 | ho0gg8r7.net | Mozilla/3.0 (WorldGate Gazelle 3.5.1 build 11; FreeBSD2.2.8-STABLE) ...
請問有什麼辦法可以解決這個問題嗎?
更新 (問題成功解決後)
我的問題不是重複的,因為我處於 DDoS 之下。我能做些什麼?因為我知道*“正在發生什麼”*(小型 DDoS 攻擊),因此我要求添加確切的規則以
.htaccess
阻止攻擊者。順便說一句,我在 DDoS 下。我能做些什麼?建議聯繫託管服務提供商。我做到了,但我的託管服務提供商(最受歡迎的服務提供商之一)建議購買更昂貴的套餐,其中包含更多資源。:)
Froggiz的解決方案正是我想要的。
這是阻止攻擊者的規則
# Block request if not empty or not start with http RewriteCond %{HTTP_REFERER} "!^$|^http" # Block request rule RewriteRule .* - [F]
我添加了更多規則來阻止其他機器人:
# Block empty user agent, and suspect user agen RewriteCond %{HTTP_USER_AGENT} ^-?$|perl|python|\\x.*?\\x [NC,OR] # Limit request to GET POST and HEAD RewriteCond %{REQUEST_METHOD} !^(GET|HEAD|POST)$ [OR] # Block request who doesn't start with / as it should for normal web sites RewriteCond %{REQUEST_URI} !^/ [OR] # Block request if not empty or not start with http RewriteCond %{HTTP_REFERER} "!^$|^http" # Redirect to 406 page RewriteRule .* - [END,R=406]
我使用程式碼 406(不可接受)作為響應程式碼,但它是可選的,它可以是你想要的一切
$$ F $$正如 apache doc 所建議的那樣 https://httpd.apache.org/docs/2.4/en/rewrite/access.html
如果您正在使用另一個重寫規則(例如短網址),您需要放置我之前發布的規則,以便首先使用