2013-03-12 129 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