[1] Cookie の Secure
属性は、
そのクッキーが「安全」に扱われるべきことを示します。
[22] セッションクッキーその他セキュリティー的に重要なクッキーでは、
Secure
属性を指定するべきです >>21。
[28]
HTTPS の利用が当然となった現在となっては、
Secure
属性を付ける必要があるかないか判断するのは意味がありません。
安全側に倒すということで、
いっそすべてのクッキーに Secure
属性を付けてしまってもいいかもしれません。
[3] クッキーは HTTP 応答で鯖に、DOM 属性
document.cookie
でスクリプトに提供されます。
[14] HTTP に関しては、 安全な通信路上を要求が送信される場合にのみ当該クッキーを含めることになっています。 具体的には TLS や SSL を使う (HTTPS の) 場合がこれに含まれ >>4, >>12、 単体の HTTP を TCP 上で用いる場合は含まれません。
[15] DOM については、 HTTPS によって取得された文書が安全とみなされ、 単体のHTTP は安全ではないとみなされます。
[5] Secure
属性が設定されていな場合は、
そのような安全な通信路でなくても送信されます >>4 し、
安全な通信路を経ていない文書でもスクリプトからアクセスできます。
[16] Secure
属性はクッキーが安全な通信路から安全でない通信路へと漏れることを防ぐ上では有用です。
起源の定義には URL scheme も含まれているので、通常の方法では DOM
上でも HTTPS のページのスクリプトから HTTP のページのスクリプトへと直接
Secure
属性由来の値を引き渡すこともできません。
[17] しかし Secure
属性のついたクッキーを発行することは HTTPS
でない HTTP からも可能です。従って攻撃者は安全でない通信路からクッキーを注入可能であり、
一貫性の観点では Secure
属性は意味をなしません >>12。
[6] この属性は当初より Netscape Cookie で規定されていました。
[7] IETF の RFC 2109 4.2.2 Set-Cookie2 Syntax、RFC 2965 3.2.2 Set-Cookie2 Syntax でも定義されていました。
[8] >>7 では「安全」な方法について明確には規定されていませんでした。両仕様によれば、 利用者エージェントが (場合によっては利用者に諮った上で) 決めて構いませんし、設定されたときと同等以上に安全な方法で送出するべきですが、 それ以上の具体的なケースには触れられていませんでした。
[9] この属性が省略された場合、安全でない方法で送信しても構わない RFC 2109 4.3.1 Interpreting Set-Cookie, RFC 2965 3.3.1 Interpreting Set-Cookie2 とされていました。
[23] Potential changes to cookies in Chrome. (Mike West 著, 版) https://lists.w3.org/Archives/Public/public-webappsec/2015Nov/0069.html
[24] draft-west-leave-secure-cookies-alone-04 - Deprecate modification of 'secure' cookies from non-secure origins ( 版) https://tools.ietf.org/html/draft-west-leave-secure-cookies-alone-04
[25] Deprecate modification of 'secure' cookies from non-secure origins () http://httpwg.org/http-extensions/draft-ietf-httpbis-cookie-alone.html
[26] 976073 - (leave-secure-alone) prevent HTTP responses from setting cookies with secure flag () https://bugzilla.mozilla.org/show_bug.cgi?id=976073
[27] draft-ietf-httpbis-cookie-alone-01 - Deprecate modification of (, ) https://tools.ietf.org/html/draft-ietf-httpbis-cookie-alone-01
Set-Cookie:
も参照。