Secure

Secure 属性 (クッキー)

[1] CookieSecure 属性は、 そのクッキーが「安全 (secure) 」に扱われるべきことを示します。

仕様書

意味

[13] Secure 属性クッキーの適用範囲が 「保安」通信路に制限されることを表します >>12

[2] この属性は値をとりません。 存在するかしないかでブール値を表します。

[11] RFC 6265 における Secure 属性の構文
 secure-av         = "Secure"

文脈

[22] セッションクッキーその他セキュリティー的に重要なクッキーでは、 Secure 属性を指定するべきです >>21

[28] HTTPS の利用が当然となった現在となっては、 Secure 属性を付ける必要があるかないか判断するのは意味がありません。 安全側に倒すということで、 いっそすべてのクッキーSecure 属性を付けてしまってもいいかもしれません。

処理

[19] 属性値はあっても無視されます >>18

[3] クッキーHTTP 応答に、DOM 属性 document.cookieスクリプトに提供されます。

[14] HTTP に関しては、 安全な通信路上を要求が送信される場合にのみ当該クッキーを含めることになっています。 具体的には TLSSSL を使う (HTTPS の) 場合がこれに含まれ >>4, >>12、 単体の HTTPTCP 上で用いる場合は含まれません。

[15] DOM については、 HTTPS によって取得された文書安全とみなされ、 単体のHTTP安全ではないとみなされます。

[5] Secure 属性が設定されていな場合は、 そのような安全な通信路でなくても送信されます >>4 し、 安全な通信路を経ていない文書でもスクリプトからアクセスできます。

[20] Set-Cookie: も参照。

安全性

[16] Secure 属性クッキー安全な通信路から安全でない通信路へと漏れることを防ぐ上では有用です。 起源の定義には URL scheme も含まれているので、通常の方法では DOM 上でも HTTPS のページのスクリプトから HTTP のページのスクリプトへと直接 Secure 属性由来の値を引き渡すこともできません。

[17] しかし Secure 属性のついたクッキーを発行することは HTTPS でない HTTP からも可能です。従って攻撃者は安全でない通信路からクッキーを注入可能であり、 一貫性の観点では Secure 属性は意味をなしません >>12

歴史