同じ問題がありましたが、ページキャッシュされたページがありました。ページは、古い認証トークンと、post / put / deleteメソッドを使用してすべてのアクションでバッファリングされ、偽造の試みとして認識されます。エラー(422 Unprocessable Entity)がユーザーに返されました。
Rails 3のソリューション:
追加:
skip_before_filter :verify_authenticity_token
または、「sagivo」がRails 4で指摘したように、以下を追加します。
skip_before_action :verify_authenticity_token
キャッシュを行うページ。
@toobulkehとして、これは上の脆弱性ではありませんコメントし:index
、:show
アクションが、上でこれを使用して注意してください:put
、:post
アクション。
例えば:
caches_page :index, :show
skip_before_filter :verify_authenticity_token, :only => [:index, :show]
リファレンス:http : //api.rubyonrails.org/classes/ActionController/RequestForgeryProtection/ClassMethods.html
skip_before_actionの賛成でbarlop-のRails 4.2は非推奨skip_before_filterによって追加注https://guides.rubyonrails.org/4_2_release_notes.html「メソッドの* _filterファミリは、ドキュメントから削除されました。彼らの使用は* _actionの賛成で推奨されメソッドのファミリー」
用レール6あなたが使用することができます(「collimarcoは」指摘したように)skip_forgery_protection
、セッションデータを使用していないのREST APIのためにそれを使用しても安全であること。