2013-03-12 126 views
0

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

我的目标是去掉非标准的标题,以加强安全性。我想保留content-type,accept等,但我想剥离标头,如myHeader1abc=xyz

作为我的测试的一部分,我发送自定义标题,我可以看到它们到达我的服务器远端,所以nginx没有做任何过滤。我试过在我的/etc/nginx/nginx.conf文件中使用ignore_invalid_headers on;http {}下,但我认为这意味着与我认为不同的东西,因为它没有去掉任何头文件。

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

谢谢。

回答

2

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

有关更多详细信息,请参见http://wiki.nginx.org/NginxHttpHeadersMoreModule#more_clear_headers

它不是标准nginx发行版的一部分,所以你将不得不手动安装它。

more_clear_headers 'X-*'; 

将清除所有的头开始X-

+0

感谢。所以你说我不能在没有插件的情况下过滤这些头文件?如果我安装了该插件,是否可以过滤除指定少数的所有标头?因为'X- *'不会阻止'header'或'headerXYZ'或者黑客决定组成的东西。 – eoinzy 2013-03-12 12:12:03

+0

是的,你需要插件。它仍然没有提供你想要的确切功能,但它是最接近的。如果你愿意,你也可以编写自己的插件。 http://wiki.nginx.org/3rdPartyModules#Tools_for_module_developers – Bart 2013-03-12 13:00:14

+0

我发现一个旧的github回购试图做类似的尝试。但我不知道它是否有效:https://github.com/localshred/nginx-whitelist – eoinzy 2013-03-13 11:21:26