クッキーのSecureフラグはリバースプロキシに立てさせたい
HTTPクッキーで秘密情報、例えばログインセッションIDなどを扱う場合はSecureフラグを立てるのが定石です(例え秘密情報を扱わないとしても立てるのが定石と考えるべきかもしれません。セキュリティテストでは機械的に問題点として検出されてしまいますから)。
Secureフラグとは「HTTPS通信時にしか送り返さないでください」というブラウザへの指示。
Set-Cookie: session_id=8Zf60baQ4;secure
などと、Set-Cookieヘッダにsecureと追記することで実現します。こうしておけば、平文通信に秘密情報が流れてパケットキャプチャで盗聴されてしまうという心配がなくなります。
開発時にはsecureフラグが邪魔だったり
というわけでまともなユーザアカウント管理のあるWebシステムならsecureフラグは当然付けなければいけないのですが、問題は開発中です。
開発マシンのローカルにサーバを立てて動かしているときなど、HTTPSアクセスってことはまずしません。HTTPでアクセスしますよね。すると、secureフラグのせいでログインができなくなってしまうのです。
本番環境に発行したときだけsecureがオンになるように設定する? 設定漏れが怖いですね、だってsecureをオンにし忘れたって異常動作は出ないから気付きませんよ…?
HTTPS通信の付属品だと考えればHTTPSリバースプロキシの責務
HTTPS通信をサーバ側でどう実現するかですが、Apacheをフロントエンドに立ててHTTPSリバースプロキシとして働かせる場合、 HTTPS通信をしていることでsecureフラグが必要になっているんだから、HTTPS通信を実現しているApacheがそれもやってください と考えると機能が一箇所にまとまります。
Apacheにset-cookieヘッダの書き換えをさせるのです。ここで使うのはmod_headersモジュール。標準モジュールです。httpd.confへの記述は一行だけ。
Header edit Set-Cookie ^(.*)$ $1;secure
Nginxだと一筋縄ではいかない
Apacheよりは全般的に設定のシンプルに書けるNginxですが、これに相当する設定をするのは単純ではありません。自力でスクリプトを記述する必要があります。
Author And Source
この問題について(クッキーのSecureフラグはリバースプロキシに立てさせたい), 我々は、より多くの情報をここで見つけました https://qiita.com/yuba/items/034dd027dbde15f6a795著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .