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

在 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.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

相关内容