Nginx:如何过滤具有特定查询参数值的请求?

Ningx : How to filter request with a particular query parameter value?

为了确保我的 Wordpress 网站始终受到攻击,我尝试对所有尝试上传 wp-config.php 的请求进行过滤器(即 return 404)。 请求是:

GET /wp-content/plugins/recent-backups/download-file.php?file_link=../../../wp-config.php
GET /wp-content/themes/parallelus-mingle/framework/utilities/download/getfile.php?file=../../../../../../wp-config.php
GET /wp-content/plugins/imdb-widget/pic.php?url=../../../wp-config.php

所以我想 return 404 到每个请求参数中有 wp-config.php 的请求。 你觉得可能吗?

提前致谢

您可以针对包括查询字符串的整个 URI 测试 $request_uri,或者针对整个查询字符串测试 $args(也称为 $query_string)。

server 块顶部附近的 if 语句应筛选出您要禁止的所有请求。

例如:

if ($request_uri ~* wp-config\.php) { return 404; }

参见 this caution 关于 if 的使用。