如何防止查询字符串访问尝试(如 /?hfsagrs=XXX)

如何防止查询字符串访问尝试(如 /?hfsagrs=XXX)

我是一个新的网站所有者,没有那么多流量,但最近我的 NGINX 访问日志充斥着请求,如下图所示。

我尝试使用块\?.*中的模式来阻止访问location,但没有效果。如何阻止此类请求并返回 444(“黑洞”请求)?

Nginx 日志显示此场景

出于隐私原因,IP 已被删除

答案1

location与Apache 重写规则不同, rewritenginx 指令与所谓的规范化URI(参见location指令文档找出它的含义)其中不包括查询部分。您可以检查$arg_hfsargsnginx 变量,如果它不为空,则关闭连接:

if ($arg_hfsargs) {
    return 444;
}

如果整个查询字符串不为空,则要关闭连接,您可以检查$args变量。

相关内容