Edited at

nginxの設定ミスで起こるMultiline response headers

More than 1 year has passed since last update.


はじめに

この記事は下記リンクの日本語翻訳記事です

https://github.com/yandex/gixy/blob/master/docs/en/plugins/addheadermultiline.md

翻訳が誤っている場合はコメントか@no1zy_secまでお知らせいただけると幸いです。


[add_header_multiline] Multiline response headers

レスポンスヘッダの値を複数行に渡って使用することは避けてください。


理由


  • これらは非推奨です(RFC 7230)

  • いくつかのHTTPクライアントとWebブラウザはRFC 7230を未だにサポートしていません。 (例: IE/Edge/Nginx)

レスポンスヘッダの値を複数行に渡っての使用が原因で起きる脆弱性はこちらのレポートが参考になります。


どうやって見つけるか

設定ミスの例:

# http://nginx.org/en/docs/http/ngx_http_headers_module.html#add_header

add_header Content-Security-Policy "
default-src: 'none';
script-src data: https://yastatic.net;
style-src data: https://yastatic.net;
img-src data: https://yastatic.net;
font-src data: https://yastatic.net;";

# https://www.nginx.com/resources/wiki/modules/headers_more/
more_set_headers -t 'text/html text/plain'
'X-Foo: Bar
multiline';


対策

唯一の解決策は、multiline response headersを使用しないことです。


関連リンク

nginxの設定ミスで起こるHTTP Splitting

nginxの設定ミスで起こるSSRF

nginxの設定ミスで起こるパス トラバーサル

nginxの設定ミスで起こるレスポンスヘッダの出力不備

nginxの設定ミスで起こるreferer/origin検証の問題

nginxの設定ミスで起こるHostヘッダフォージェリ

nginxの設定ミスで起こるリファラの検証不備