- blogs:
- cles::blog
« 初めての「登記されていないことの証明書」 :: 久しぶりに献血へ »
2016/11/04

Cookie を JavaScript から取得させない






Chrome の機能拡張にマルウェアが仕込まれていて騒ぎになっているようです。
- HTTP Headers という 5万人が使っている Chrome 拡張のマルウェア疑惑。セッション盗まれて BTC も盗まれそうになった話。 - clock-up-blog
- Zaif のセッション情報が盗まれた原因のひとつについて。JavaScript からクッキー値を取得させない方法。 - clock-up-blog
その中で紹介されていた Cookie の httponly という属性*1が興味深かったのでメモ。
Cookie の仕様とセキュリティ
httponly 属性をつけると、そのクッキーは Cookie ヘッダ以外から読み取ることができなくなりなり、JavaScript から参照できなくなります。 Secureの反対の意味、 http でしか送信されないCookieという意味では ない ので気をつけて下さい。
このオプションはXSS脆弱性があった場合の被害を小さくします。 XSS脆弱性によって攻撃者が任意のJavaScriptが実行できてしまうと、 document.cookie の値を読んで Session ID などのログイン情報などを盗み見れてしまう可能性がありますが、 HttpOnly属性をつけておくとクッキーが XSS 脆弱性によって読み取られることがなくなります。
アプリを書くときに Cookie の Secure 属性は意識してつけていたものの、HttpOnly は Secure の逆かと勘違いしていて、完全にスルーしていました。なかなかの大失態です。
Java の場合には Servlet 3.0 から HttpOnly を指定するためのメソッド javax.servlet.http.Cookie#setHttpOnly()*2があります。また、PHP の場合には PHP 5.2 以降であれば setcookie()*3の第7引数を使って設定することができます。
- *1: RFC 6265 — HTTP State Management Mechanism (日本語訳)
- *2: Cookie (Java EE 6 )
- *3: PHP: setcookie - Manual
トラックバックについて
Trackback URL:
お気軽にどうぞ。トラックバック前にポリシーをお読みください。[policy]
このエントリへのTrackbackにはこのURLが必要です→https://blog.cles.jp/item/8909
Trackbacks
このエントリにトラックバックはありません
Comments
愛のあるツッコミをお気軽にどうぞ。[policy]
古いエントリについてはコメント制御しているため、即時に反映されないことがあります。
古いエントリについてはコメント制御しているため、即時に反映されないことがあります。
コメントはありません
Comments Form
コメントは承認後の表示となります。
OpenIDでログインすると、即時に公開されます。
OpenID を使ってログインすることができます。
« 初めての「登記されていないことの証明書」 :: 久しぶりに献血へ »
サイト内検索
検索ワードランキング
へぇが多いエントリ
閲覧数が多いエントリ
1 . Thunderbird のメッセージをスレッド化しないようにする(4592)
2 . Word で数式がグレーアウトされていて挿入できないときは(3415)
3 . Windows 10 で勝手にログアウトされないようにする(3036)
4 . Firefox でパスワードが保存されるページとされないページの違い(2565)
5 . シャープの空気清浄加湿器のキュルキュル音は PTFE スプレーで(2356)
2 . Word で数式がグレーアウトされていて挿入できないときは(3415)
3 . Windows 10 で勝手にログアウトされないようにする(3036)
4 . Firefox でパスワードが保存されるページとされないページの違い(2565)
5 . シャープの空気清浄加湿器のキュルキュル音は PTFE スプレーで(2356)
cles::blogについて
Referrers