查询字符串中的参数数量限制

我只想限制nginx / apache允许传递的参数数量。例如:如果某人尝试访问诸如test.php?arg1=value&arg2=value&arg3=value之类的链接,则向他们给出404错误或403错误都没有关系。如果URL包含两个以上的参数/参数,则Web服务器应将其阻止。有没有办法完成这项任务?我为Apache htaccess尝试了一些尝试,但没有成功。我说的是限制整个网站的参数数量,而不仅仅是一页/文件。

RewriteCond %{QUERY_STRING} (([a-z]+){3,})=(.*) [NC]
RewriteRule (.*) /404.php? [R=404,L]

可以为Apache和Nginx完成此操作吗?

xiaozhuhechaohong 回答:查询字符串中的参数数量限制

一种简单的方法是限制&字符串中$args个字符。

如果只有两个参数,通常只有一个&才能加入它们,因此序列&.*&不应该存在。

例如:

if ($args ~ "&.*&") { return 403; }

有关if的使用,请参见this caution

本文链接:https://www.f2er.com/3118680.html

大家都在问