◆ [Ruby][Sinatra] SinatraでRack::Csrfの例外をハンドリングする SinatraでのCSRF対策にはRack::Csrfが使えますが、普通に use Rack::Csrf, :raise => true とか書いただけでは、errorハンドラで例外を捕捉・処理できません。production環境ではCSRFチェックに引っかかると403応答+真っ白な画面になるのですが、false negativeの可能性が0ではないので、何らかの処理はしておきたいところです。 というわけで、試行錯誤の結果行き着いたのが以下のようなコード。もっと良い方法があったらコメントください。 require 'rubygems' require 'sinatra' require 'rack/csrf' require 'haml' use Rack::Session::Pool use