cookieの操作可能範囲について


まえがき

2年ほど前に調べたcookieの操作可能範囲。
発掘したので、そのままぺたり。
操作手段はJavaScript。

参考

前提

cookieのpath指定はすべて「/」である。

cookieの読み書き範囲の調査

■ トップドメイン(.com, .jp等)で指定してcookie付与は不可

document.cookie = "_testsunTop=hogehoge; path=/; domain=.com;";

=> 付与できない

■ ドメインで指定してcookieを付与した場合、指定した階層以下からは参照可能

参照可否

同一 上位 下位
×

現在の場所 test.aaa.domain.com

document.cookie = "_testsun=ttttt; path=/; domain=.aaa.domain.com;";

参照可能範囲

  • test.aaa.domain.com
  • tttt.aaa.domain.com
  • aaa.domain.com

参照不可

  • domain.com

■ 現在いる場所のドメインと指定するドメインの場所が異なる場合、書き込み不可

現在の場所 test.aaa.domain.com

document.cookie = "_testsunAno=anotherdomain; path=/; domain=.tttt.aaa.domain.com;";

■ ドメインを指定せずにcookieを書き込むと、そのドメインからしか見ることができない

現在の場所 aaa.domain.com

document.cookie = "_testsunNoSetDomain=foobaa; path=/;";
  • 設置場所 aaa.domain.com
  • サブドメイン test.aaa.domain.com

【IEの場合】、ルートドメインでcookieが発行されるとサブドメインまで読み込むことができる。

① root.com/hogehoge.htmlで以下のように設定

document.cookie = "_sun_tes_no_set_domain=noDomain; path=/";
document.cookie = "_sun_tes_no_priod=setNoDomain; domain=root.com; path=/";
document.cookie = "_sun_tes_set=setDomain; domain=.root.com; path=/";

② sub.root.com/fugafuga.htmlでcookieを確認すると、すべての値を確認可能。

削除のことば

expires=Thu, 01 Jan 1970 00:00:00 GMT