web-dev-qa-db-ja.com

Cookieの「セキュア」フラグはどのように機能しますか?

secureフラグ付きのCookieは、暗号化されていない接続を介して送信されないことを知っています。これはどのように詳細に機能するのだろうか。

Cookieを送信するかどうかを決定する責任は誰にありますか?

89
ted

クライアントは暗号化された接続に対してのみこれを設定し、これは RFC 6265 で定義されています:

Secure属性は、Cookieのスコープを「セキュア」チャネルに制限します(「セキュア」はユーザーエージェントによって定義されます)。 CookieにSecure属性がある場合、ユーザーエージェントは、要求がセキュリティで保護されたチャネル(通常はHTTP over Transport Layer Security(TLS)[RFC2818])で送信される場合にのみ、HTTP要求にCookieを含めます。

アクティブなネットワーク攻撃者からCookieを保護するには一見有用ですが、Secure属性はCookieの機密性のみを保護します。アクティブなネットワーク攻撃者は、安全でないチャネルからのセキュアCookieを上書きして、整合性を破壊する可能性があります(詳細については、セクション8.6を参照)。

83
Cratylus

主題に関する別の言葉:

ウェブサイトexample.comが完全にhttpsであるため、secureを省略するだけでは不十分です。

ユーザーが明示的にhttp://example.comに到達している場合、ユーザーはhttps://example.comにリダイレクトされますが、すでに手遅れです。最初のリクエストにはCookieが含まれていました。

42
Alain Tiemblo