Haproxy
在 HAProxy / url-encoding 中阻止特定的 URL
我正在嘗試限制對特定 URL 的訪問。它不應該被允許訪問/admin.php。
frontend example acl restricted_page path_beg -i /admin\.php http-request deny if restricted_page
這工作正常,HAProxy 阻止訪問此 URL。但是當我輸入http://example.org/ad%6Din.php (%6D = “m” 的十六進制程式碼) 時,HAProxy 並沒有限制訪問。
做這個的最好方式是什麼?
- HAProxy 中是否有選項,或者我是否需要將匹配“admin.php”的正則表達式指定為純文字和/或 url 編碼?
- 還有其他方法可以繞過限制嗎?
謝謝!
碰巧的是,HAProxy 有一個轉換器來解碼該欄位,確保您的 ACL 始終匹配給定的字元串。
url_dec
將提供的 url 編碼字元串作為輸入並返回解碼後的版本作為輸出。輸入和輸出都是字元串類型。
你會像這樣使用它。
frontend example acl restricted_page path_beg,url_dec -i /admin.php http-request deny if restricted_page