【问题标题】:nginx - how to block custom headersnginx - 如何阻止自定义标头
【发布时间】:2013-03-12 11:03:34
【问题描述】:

我有 nginx 在本地运行,以及我的本地测试 SOAP server。我正在使用SoapUI 通过 nginx 向该服务器发送soap请求,例如SoapUI -> Nginx:80 -> SoapSever:9338

我的目标是去除非标准标题,以加强安全性。我想保留content-typeaccept 等,但我想去掉myHeader1abc=xyz 等标题。

作为我测试的一部分,我正在发送自定义标头,我可以看到它们到达我在远端的服务器,因此 nginx 没有进行任何过滤。我尝试在/etc/nginx/nginx.conf 文件中的http {} 下使用ignore_invalid_headers on;,但我认为它的含义与我认为的不同,因为它不会去除任何标题。

我可以从文档中看到您可以添加标头或更改特定标头,但我可以去掉所有非标准/自定义标头,还是可以指定我只想接受的标头列表?

谢谢。

【问题讨论】:

    标签: nginx http-headers security


    【解决方案1】:

    ignore_invalid_headers 指令仅忽略格式错误的标头。
    要清除某些标题,您可以查看 more_clear_headers 指令。

    更多详情请见http://wiki.nginx.org/NginxHttpHeadersMoreModule#more_clear_headers

    它不是标准 nginx 发行版的一部分,因此您必须手动安装它。

    例子

    more_clear_headers 'X-*';
    

    将清除所有以X-开头的标题

    【讨论】:

    • 谢谢。所以你是说我不能在没有插件的情况下过滤这些标题?如果我安装该插件,是否可以过滤除指定的少数几个标题之外的所有标题?因为X-* 不会阻止headerheaderXYZ 或任何黑客决定编造的东西。
    • 是的,您需要插件。它仍然没有提供您不想要的确切功能,但它是最接近的。如果您愿意,也可以编写自己的插件。 wiki.nginx.org/3rdPartyModules#Tools_for_module_developers
    • 我发现了一个旧的 github repo,它试图做类似的事情。但我不知道它是否有效:github.com/localshred/nginx-whitelist
    • 看起来很有希望!但我也不知道它是否有效。如果您想深入了解,那么这里有一篇关于开发模块的文章。它还包括建筑。 evanmiller.org/nginx-modules-guide.html
    猜你喜欢
    • 2015-04-17
    • 1970-01-01
    • 2020-11-03
    • 2021-12-18
    • 2020-09-10
    • 2017-12-16
    • 1970-01-01
    • 1970-01-01
    • 2019-02-19
    相关资源
    最近更新 更多