Rails 3 アプリ + HTTPS で実現する Cookie のセキュリティ
Rails 3 アプリ + HTTPS で実現する Cookie のセキュリティ
Rails 3 で Web+DB vol.71 特集1 第四章に載っている、"HTTPS で実現する Cookie のセキュリティ" の実現方法。HTTPS のみのアプリではやっておくべき。
具体的には
- Cookie に secure 属性の追加
- Cookie に HttpOnly 属性の追加
- HSTS 対応 (Strict-Transport-Security ヘッダの追加)
を行う。各種がどんな対策なのかは Web+DB の特集を読もう!
Rails 3.1 以降の場合
production が SSL 環境なら、config/environments/production.rb に
config.force_ssl = true
config.ssl_options = { :hsts => true }
を追加するだけ。Rack::SSL ミドルウェアが読み込まれ、ssl_options が設定として渡される。
Rails 3.0 の場合
Gemfile で
gem 'rack-ssl'
を追加。
config/environments/production.rb に
require 'rack/ssl'
config.middleware.insert_before Rack::Lock, "Rack::SSL", { :hsts => true }
を追加する。環境によっては middleware が異なってたりするので、場合により Rack::Lock の場所は適当に読みかえる。
わおーかんたん。