Chrome の機能拡張にマルウェアが仕込まれていて騒ぎになっているようです。
その中で紹介されていた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引数を使って設定することができます。
このエントリへのTrackbackにはこのURLが必要です→https://blog.cles.jp/item/8909
コメントは承認後の表示となります。
OpenIDでログインすると、即時に公開されます。
OpenID を使ってログインすることができます。