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
    フラグを設定するべきです。」