Linux
使用 .htaccess 限制對特定 URL 的訪問
您好,我正在使用 xenforo 執行伺服器。我想知道如何限制 .htaccess 中的 url。
網址是:
https://mywebiste.com/index.php?members/find&q=oi%5Bp%5C&_xfRequestUri=%2Findex.php%3Fmembers%2F&_xfWithData=1&_xfToken=1648216864%2C89d40e7bf50a91b8a62f9fe448c5d1f3&_xfResponseType=json
有 sql 注入,所以它認為只是阻止它會修復它。
我試著做這樣的事情:
RewriteEngine On RewriteRule ^index.php?members/find&q=oi%5Bp%5C&_xfRequestUri=%2Findex.php%3Fmembers%2F&_xfWithData=1&_xfTo ken=1648216864%2C89d40e7bf50a91b8a62f9fe448c5d1f3&_xfResponseType=json - [F]
並以 $ 結尾:
RewriteEngine On RewriteRule ^index.php?members/find&q=oi%5Bp%5C&_xfRequestUri=%2Findex.php%3Fmembers%2F&_xfWithData=1&_xfTo ken=1648216864%2C89d40e7bf50a91b8a62f9fe448c5d1f3&_xfResponseType=json$ - [F]
我究竟做錯了什麼?
該
RewriteRule
指令僅與 URL 路徑匹配。要匹配查詢字元串,您需要一個與伺服器變數RewriteCond
匹配的附加(條件)指令。QUERY_STRING
例如,要阻止該特定 URL:
RewriteCond %{QUERY_STRING} =members/find&q=oi%5Bp%5C&_xfRequestUri=%2Findex.php%3Fmembers%2F&_xfWithData=1&_xfToken=1648216864%2C89d40e7bf50a91b8a62f9fe448c5d1f3&_xfResponseType=json RewriteRule ^index\.php$ - [F]
CondPattern上的
=
前綴(指令的第二個參數)使其成為字典字元串比較(精確匹配),而不是正則表達式,因此無需轉義特殊的正則表達式元字元。RewriteCond
但是,此 URL 非常具體,阻止(不)匹配特定模式的 URL 不是更好嗎?儘管如果您已經在伺服器端腳本中充分驗證了 URL 參數值,則不需要像這樣阻止特定的 URL。