![在 HAProxy/url-encoding 中阻止特定 URL](https://linux22.com/image/676520/%E5%9C%A8%20HAProxy%2Furl-encoding%20%E4%B8%AD%E9%98%BB%E6%AD%A2%E7%89%B9%E5%AE%9A%20URL.png)
我正在尝试限制对特定 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.php(%6D =“m”的十六进制码),HAProxy 未限制访问。
做这个的最好方式是什么?
- HAProxy 中是否有选项,或者我是否需要指定与“admin.php”匹配的正则表达式作为纯文本和/或 url 编码?
- 还有其他方法可以绕过限制吗?
谢谢!
答案1
事实上,HAProxy 有一个转换器解码该字段,确保您的 ACL 始终与给定的字符串匹配。
url_dec
以提供的 URL 编码字符串作为输入并返回解码后的版本作为输出。输入和输出均为字符串类型。
你可以像这样使用它。
frontend example
acl restricted_page path_beg,url_dec -i /admin.php
http-request deny if restricted_page