Yabu.log

ITなどの雑記

Cookieのhttponlyを検証する

この記事の続きです

yuyubu.hatenablog.com

生のCookieが簡単に参照できることがわかったので、 本記事ではhttponlyが指定されているcookieJavaScriptから読み出せないことを検証します。 まずhttponlyが設定されているクッキーのあるホストを探してみました。

select host_key,name,secure,httponly from cookies where httponly = 1

wikipediaのクッキーが出てきました

host_key name secure httponly
ja.wikipedia.org WMF-Last-Access 1 1

wikipadiaらしきクッキーを全部出してみます

select host_key,name,secure,httponly from cookies where host_key like  "%wikipedia.org%"
host_key name secure httponly
ja.wikipedia.org CP 1 0
ja.wikipedia.org WMF-Last-Access 1 1
.wikipedia.org WMF-Last-Access-Global 1 1
ja.m.wikipedia.org CP 1 0
ja.m.wikipedia.org WMF-Last-Access 1 1
.wikipedia.org GeoIP 1 0

実際にwikipediaのページを開いて開発者コンソールでスクリプトを使ってクッキーを参照します。

>document.cookie
"GeoIP=JP:13:Tokyo:<IPアドレスっぽいので伏せます>; CP=H2"

想定どおりhttponlyがついていないGeoIPとCPのみが表示される結果となりました。 httponlyの付いているWMF-XXXX系のcookieJavaScriptからは取得できませんでした。

余談ですがsecure属性がついているクッキーはhttpsでしか読み出せませんが、Wikipediaにhttpで接続する方法がよくわかりません。