Linux

htaccess 禁用 wordpress 搜尋域 / ?s = 測試

  • March 4, 2019

我的 wordpress 部落格被毫無意義的搜尋請求轟炸了。

htaccess 禁用 wordpress 搜尋域 / ?s = 測試

無意義的 wordpress 搜尋請求

搜尋請求是韓文的?

wordpress_senseless_searches_result

翻譯為:

wordpress_senseless_searches_result_translated

所以無論是 DDoS 還是垃圾郵件。

有問題的IP是:

主機 66.249.64.24 24.64.249.66.in-addr.arpa 域名指針 crawl-66-249-64-24.googlebot.com。

主機 66.249.64.26 26.64.249.66.in-addr.arpa 域名指針 crawl-66-249-64-26.googlebot.com。

iptables 出了點問題,我無法阻止通過 IP 的請求。

請求如下所示:

domain.com/?s=StrangeKoreanSearchPattern

我需要在 .htaccess 中使用什麼正則表達式來保護所有搜尋的密碼?

# 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

<FilesMatch "wp-login.php">
   AuthName "WordPress Admin"
   AuthType Basic
   AuthUserFile /home/admin/web/.htpasswd
   require valid-user
</FilesMatch>

# DOES NOT WORK :-|    
<FilesMatch "index\.php\?s=.*">
   AuthName "WordPress Admin"
   AuthType Basic
   AuthUserFile /home/admin/web/.htpasswd
   require valid-user
</FilesMatch>

謝謝!

經過一些研究和測試後,我會說以下 htaccess 條目應該可以工作:

<If "%{QUERY_STRING} =~ /.?s=/">
 AuthName "WordPress Admin"
 AuthType Basic
 AuthUserFile /home/admin/web/.htpasswd
 require valid-user
</If>

資料來源:https ://stackoverflow.com/questions/31903448/htaccess-deny-specific-get-parameter

澄清這是做什麼的:如果查詢字元串(在“domain.com/”之後以“?”開頭的字元串)包含“?s=”,則需要 .htpasswd 文件中的有效使用者。

感謝您的回答,.htaccess 和正則表達式是合二為一的野獸。

修改了您的答案,現在似乎可以正常工作。#謝謝!

<If "%{QUERY_STRING} =~ /^.?s=/">
 AuthName "WordPress Admin"
 AuthType Basic
 AuthUserFile /home/admin/web/.htpasswd
 require valid-user
</If>

<If "%{QUERY_STRING} =~ /^.?search=/">
 AuthName "WordPress Admin"
 AuthType Basic
 AuthUserFile /home/admin/web/.htpasswd
 require valid-user
</If>

引用自:https://serverfault.com/questions/956570