🙌
document.cookie で cookie が読み込めない原因
はじめに
JavaScript で、document.cookie
を使って一部の cookie は取得できるが、session_id など一部の cookie は 取得できないという現象が発生しました。
原因
HttpOnly属性が cookie に設定されている場合、document.cookie
を使っても取得することはできません。
なぜなら、HttpOnly 属性が設定された cookie は、ウェブサーバーとブラウザ間での HTTP リクエストとレスポンスでのみ利用が可能になり、 クライアントサイドのスクリプトからは、読み取ったり変更することができなくなるからです。
解決方法
HttpOnly 属性をなくすことで解決します.
しかし、一般的には session_id などのクッキーにはHttpOnly属性を付与することが推奨されています.
なぜなら、セッションハイジャック等の危険性があるからです.
おわりに
HttpOnly属性は、設定しておいた方が確実に堅牢な構成になります。
別の手段で代替できないか検討しましょう。
Discussion