【问题标题】:Ningx : How to filter request with a particular query parameter value?Nginx:如何过滤具有特定查询参数值的请求?
【发布时间】:2016-11-07 00:08:29
【问题描述】:

为了保护我总是受到攻击的 Wordpress 网站,我尝试对所有尝试上传 wp-config.php 的请求进行过滤(即返回 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

所以我想为每个请求参数中包含 wp-config.php 的请求返回 404。 你觉得有可能吗?

提前致谢

【问题讨论】:

    标签: wordpress nginx url-parameters


    【解决方案1】:

    您可以为包括查询字符串在内的整个 URI 测试 $request_uri,或为整个查询字符串测试 $args(又名$query_string)。

    server 块顶部附近的 if 语句应该会屏蔽掉您要禁止的所有请求。

    例如:

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

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

    【讨论】:

    • 非常感谢您的回答。这是有效的,但我想知道它是否会在 if 的谨慎方面起作用。我不得不说我不清楚 if 是否有效:“如果是邪恶的”-> 也许它的工作,也许不是?
    • returnif 块中是完全安全的。我只是引用应用说明,以防您需要调整我的答案。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-13
    • 1970-01-01
    • 1970-01-01
    • 2019-02-18
    • 1970-01-01
    • 2023-02-18
    相关资源
    最近更新 更多