HTTPのみのクッキー

HttpOnly 属性 (Cookie)

[18] CookieHttpOnly 属性は、当該クッキーJavaScript から取得できず、 HTTP でのみ送信されるべきであることを表します。

[33] XSS などの脆弱性セッションIDなど重要なクッキーが盗まれる危険性を下げるため、 JavaScript からアクセスできない HttpOnly クッキーを用いることが極めて好ましいと考えられています。 近年のクッキーの用途のほとんどは HTTP からのみアクセスできれば十分でしょうから、 基本的にはこの属性は指定するべきでしょう。

仕様書

意味

[16] HttpOnly 属性クッキーの適用範囲を HTTP 要求だけに限定します。 >>15

[17] HttpOnly 属性のついたクッキーは「 (non-) HTTP」 API からはアクセスできません >>15。 具体的には document.cookie 属性からこれを取得することはできません。

[19] ここでいう「HTTP」には HTTPSWebSocket も含まれています。

「非HTTP」API

[23] document.cookie は「非HTTP」APIです >>22。つまり HttpOnly クッキーdocument.cookie で取得できません。

[26] <meta http-equiv=Set-Cookie> は「非HTTP」API です >>25

[29] HTTP Set-Cookie: / Cookie: ヘッダーは、「非HTTP」APIではありません

[28] WebSocket接続の確立時の Cookie: ヘッダーは、「非HTTP」API ではありません >>27Set-Cookie: も同様と思われます。

構文

[14] RFC 6265 における HttpOnly 属性の構文
 httponly-av       = "HttpOnly"

処理モデル

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

[24] Set-Cookie: も参照。

歴史

[9] Mitigating Cross-site Scripting With HTTP-only Cookies (2007-01-18 14:03:44 +09:00 版) <http://msdn.microsoft.com/workshop/author/dhtml/httponly_cookies.asp>

[8] httpOnly cookie flag support in PHP 5.2 - iBlog - Ilia Alshanetsky (2007-01-18 14:04:40 +09:00 版) <http://ilia.ws/archives/121-httpOnly-cookie-flag-support-in-PHP-5.2.html>

[7] Bug 178993 &#8211; MSIE-extension: HttpOnly cookie attribute for cross-site scripting vulnerability prevention (2007-01-18 14:05:01 +09:00 版) <https://bugzilla.mozilla.org/show_bug.cgi?id=178993>

[6] robubu &#187; Blog Archive &#187; HttpOnly please ( 版) <http://robubu.com/?p=15>

[2] HTTPOnly Fix In MSXML ha.ckers.org web application security lab ( 版) <http://ha.ckers.org/blog/20081111/httponly-fix-in-msxml/>

[3] Bug 380418 – XMLHttpRequest allows reading HTTPOnly cookies ( 版) <https://bugzilla.mozilla.org/show_bug.cgi?id=380418>

[4] (X)HTML5 Tracking ( 版) <http://html5.org/tools/web-apps-tracker?from=2516&to=2517>

[5] Scope of HTTPOnly Cookies ( 版) <http://docs.google.com/View?docid=dxxqgkd_0cvcqhsdw>

ietf-httponly

[12] HTTPOnly 属性の標準化のために ietf-httponly-wg メイリング・リストが2008年秋に作られました。名前に「IETF」 と入っていますが、正式な IETFWG ではありませんでした。 その後すぐに Cookie 全体の標準化の機運が高まり、 http-state IETF WG に合流しました。

[1] ietf-httponly-wg | Google グループ ( 版) <http://groups.google.com/group/ietf-httponly-wg?pli=1>

This list has moved to IETF - ietf-httponly-wg | Google グループ ( 版) <http://groups.google.com/group/ietf-httponly-wg/browse_thread/thread/59186b46f47371a1>

HTML5 の旧規定

[10] HTML5document.cookie 属性の規定のなかで、 「HTTPのみのクッキー」は返す値に含まないし、上書きすることもできないとしています。 ただし、注記 (参考) の中で、 HTML5 仕様書執筆時点で「HTTPのみのクッキー」 に関する仕様書は存在しておらず、何が「HTTPのみのクッキー」であるかは定義しない、 としています。その注記の中では一部 Webブラウザーhttponly 引数による 「HTTPのみのクッキー」の機能が実装されていることにも触れられています。

メモ

[11] mod_rewrite - Apache HTTP Server ( 版) <http://httpd.apache.org/docs/2.2/mod/mod_rewrite.html#RewriteRule>

[30] Proposal for httpOnly cookies access via NPAPI ( 版) <https://mail.mozilla.org/pipermail/plugin-futures/2012-June/000525.html>

[31] Proposal for httpOnly cookies access via NPAPI ( 版) <https://mail.mozilla.org/pipermail/plugin-futures/2012-June/000526.html>

[32] NPAPI:HttpOnlyCookies - MozillaWiki ( 版) <https://wiki.mozilla.org/NPAPI:HttpOnlyCookies>

[34] (X)HTML5 Tracking ( 版) <http://html5.org/tools/web-apps-tracker?from=4639&to=4640>

[35] NPAPI:HttpOnlyCookies - MozillaWiki () <https://wiki.mozilla.org/NPAPI:HttpOnlyCookies>

Note: Internet Explorer (IE) provides access to HTTPonly cookies in plugins (See Microsoft API: InternetSetCookieEx and InternetGetCookieEx) . NPAPI-plugins should be on par.

[36] ChromeDriverhttpOnly を設定して Add Cookie を実行しても、無視されて普通のクッキーになってしまいます。

[37] Clearly indicate that webdriver can access HttpOnly cookies (shs96c著, ) <https://github.com/w3c/webdriver/commit/73ae1efefb7c143c41e5ba521206d35aa4a22b24>

[38] "All associated cookies" must include http-only cookies. · Issue #971 · w3c/webdriver () <https://github.com/w3c/webdriver/issues/971>

[39] Clearly indicate that webdriver can access HttpOnly cookies by shs96c · Pull Request #994 · w3c/webdriver () <https://github.com/w3c/webdriver/pull/994>

[40] Actions required to mitigate Speculative Side-Channel Attack techniques - The Chromium Projects () <https://www.chromium.org/Home/chromium-security/ssca>

[41] Meltdown/Spectre  |  Web  |  Google Developers () <https://developers.google.com/web/updates/2018/02/meltdown-spectre>