如何根据参数数量过滤 HTTP 请求

如何根据参数数量过滤 HTTP 请求

我遇到了一个我从未见过的非常奇怪的问题。目前我有一些通过 Apache HTTP 提供的 Web 应用程序。

某些 HTTP 请求有时会被服务器和客户端之间的某个东西拒绝。不管它们是 GET 还是 POST,那里的东西都会拒绝带有超过 40 个参数的请求。因此,一些大型 POST 请求(带有许多参数的表单,例如注册信息或 Joomla 管理信息)被阻止,并且会面临可怕的 HTTP 404 响应(浏览器显示“找不到指定的 URL”)。

检查 Apache HTTP 中的 access.log 和 error.log,这些请求未到达 HTTP 服务器,并且我使用 Firefox 和 wget 对一定数量的虚拟参数(在 GET 和 POST 中)进行了测试。最多有 40 个参数时,响应为 200,如果有 41 个或更多参数,则会抛出 404 且没有其他标头...

为什么可以通过参数数量过滤 HTP 请求?感谢您的帮助,希望这是一个适合询问此类问题的论坛。

编辑:我怀疑是 WAF 的问题。配置它的人说它只影响服务器的一个接口。我猜它管理了所有接口。WAF 中评估错误/可疑 URL 的规则将参数数量限制为 40,可能是因为正则表达式或其他原因。我们在执行一些 wireshark 后发现了这一点,发现请求没有到达服务器本身。谢谢大家。

答案1

如果日志中没有 404 事件,则表明它在其他地方被阻止了。您是否有应用程序防火墙、IPS、R-Proxy 或类似产品?

相关内容