【问题标题】:Limit amount of parameters in query string限制查询字符串中的参数数量
【发布时间】:2020-03-07 23:26:36
【问题描述】:

我只是想限制 nginx/apache 允许传递的参数数量。例如:如果有人试图访问像 test.php?arg1=value&arg2=value&arg3=value 这样的链接,给他们一个 404 错误或 403 没关系。如果 URL 包含两个以上的参数/参数,它应该被网络服务器阻止。有没有办法完成这个任务?我已经为 Apache htaccess 尝试了一些东西,但没有成功。我说的是限制整个网站的参数数量,而不仅仅是一个页面/文件。

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

Apache 和 Nginx 可以做这件事吗?

【问题讨论】:

    标签: apache .htaccess nginx mod-rewrite


    【解决方案1】:

    一种简单的方法是限制& 字符串中& 字符的数量。

    如果只有两个参数,通常只有一个&加入,所以序列&.*&不应该存在。

    例如:

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

    请参阅this caution 了解if 的使用。

    【讨论】:

    • 很好的表达方式。我使用相同的方法为 htaccess 做了一些事情。谢谢大佬!
    猜你喜欢
    • 1970-01-01
    • 2017-06-20
    • 2010-10-05
    • 1970-01-01
    • 2010-11-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多