NginxはプロキシサーバーのCookieにセキュリティフラグを追加します。

NginxはプロキシサーバーのCookieにセキュリティフラグを追加します。

Mozillaは、ウェブサイトの構成を確認するための新しいツールをリリースしました。 observatory.mozilla.org

しかし、検査ではクッキーについて文句を言います(-10点)。セキュリティフラグなしでセッションCookieが設定されました...

残念ながら、私のnginxの背後で実行されているサービスは、SSLがnginxで終了するのではなく、SSLが直接終了したときにのみセキュリティヘッダを設定できます。したがって、クッキーには「セキュリティ」フラグは設定されません。

nginxを使用してCookieに「セキュリティ」フラグを添付することは可能ですか?場所/パスの変更が可能なようです。

http://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_cookie_domain

http://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_cookie_path

ベストアンサー1

私はこれを行う2つの方法を知っていますが、どちらもあまり良くありません。 1つ目は、次のようにProxy_cookie_pathを乱用することです。

proxy_cookie_path / "/; secure";

2 番目は more_set_headers ディレクティブを使用することです。もっとタイトル 次のモジュール:

more_set_headers 'Set-Cookie: $sent_http_set_cookie; secure';

どちらの方法も盲目的に項目を追加するため、問題が発生します。たとえば、アップストリームが設定されている場合安全次のようにクライアントにコピーを送信することを示してください。

Set-Cookie: foo=bar; secure; secure;

2番目のケースでは、アップストリームアプリケーションがCookieを設定しない場合、nginxはCookieをブラウザに送信します。

Set-Cookie; secure;

もちろんこれは二重と不利です。

この質問は多くの方がお問い合わせいただきましたので解決が必要だと思います。次のようなディレクティブが必要なようです。

proxy_cookie_set_flags * HttpOnly;
proxy_cookie_set_flags authentication secure HttpOnly;

しかし残念ながら、まだ存在していません。 :(

おすすめ記事