secure
フラグ付きのCookieは、暗号化されていない接続を介して送信されないことを知っています。これはどのように詳細に機能するのだろうか。
Cookieを送信するかどうかを決定する責任は誰にありますか?
クライアントは暗号化された接続に対してのみこれを設定し、これは RFC 6265 で定義されています:
Secure属性は、Cookieのスコープを「セキュア」チャネルに制限します(「セキュア」はユーザーエージェントによって定義されます)。 CookieにSecure属性がある場合、ユーザーエージェントは、要求がセキュリティで保護されたチャネル(通常はHTTP over Transport Layer Security(TLS)[RFC2818])で送信される場合にのみ、HTTP要求にCookieを含めます。
アクティブなネットワーク攻撃者からCookieを保護するには一見有用ですが、Secure属性はCookieの機密性のみを保護します。アクティブなネットワーク攻撃者は、安全でないチャネルからのセキュアCookieを上書きして、整合性を破壊する可能性があります(詳細については、セクション8.6を参照)。
主題に関する別の言葉:
ウェブサイトexample.com
が完全にhttpsであるため、secure
を省略するだけでは不十分です。
ユーザーが明示的にhttp://example.com
に到達している場合、ユーザーはhttps://example.com
にリダイレクトされますが、すでに手遅れです。最初のリクエストにはCookieが含まれていました。