Haproxy

在 HAProxy / url-encoding 中阻止特定的 URL

  • February 8, 2016

我正在嘗試限制對特定 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

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