Cookieのhttponly属性を外す方法
Railsでセッションを作成するとブラウザにCookieが送信される。このCookieが普通にcookiesハッシュで作成したCookieと違うのは、Cookieのhttponly属性がonになって送信されることだ。
これがonのCookieは、ブラウザ上のjavascriptで、
document.cookie
としても値を取得できない。
クライアント側でセッションのCookieを意図的にハックしたい場合、以下の方法でhttponly属性をoffにすることができる。
ActionController::Base.session_options[:httponly] = false
「RailsによるアジャイルWebアプリケーション開発 第2版」によると、
セッションの場合、オプションはグローバルなので、環境ファイル(config/environment.rbまたはconfig/environments内のファイルのひとつ)で設定できます。
とあるので、環境設定ファイルconfig/initializers/session_store.rbで設定を行うことで、これを実現することができた。