2018-03-17
そもそも cookie とは何かということについては以下などを見るとして、
HTTP cookie - Wikipedia
簡単に言うと、ブラウザからのリクエストに対し、web サーバがレスポンスヘッダで
Set-Cookie: name1=value1
などを含めて返すと、ブラウザは、name1 というクッキーの値 value1 を記憶し、次に再び同じ web サーバに何かをリクエストするときには、それを
Cookie: name1=value1
などとして送出する。
ところで cookie の値は、前述のように
web サーバに送り返すだけでなく、そのままではブラウザ上の
JavaScript からも読み取ることができる。
特に cookie に、いわゆるセッション ID を持たせていた場合、それを許すと、万一
XSS 脆弱性があった場合に、セッションを乗っ取られる危険性がある。
そこで、Set-Cookie するときに、HttpOnly というものを指定しておくと、その cookie は、JavaScript から読み取ることが出来なくなる。
Set-Cookie: name1=value1; HttpOnly
いわゆるセッション ID を持たせている場合、HttpOnly を指定しておくべきである。
HttpOnly
Cookie
HttpOnly
フラグを設定するべきです。」