0
  1
  2
  # See ActionController::RequestForgeryProtection for details
  # Uncomment the :secret if you're not using the cookie session store
  protect_from_forgery # :secret => 'cad57a45b7d682967d7880bd028d8bcb'

  0
  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
<html>
<head>
<title>Tutorial: CSRF</title>
  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
  <%= stylesheet_link_tag 'ror' %>
</head>
<body>
<h2>Tutorial: CSRF</h2>
 
<%= @message %>
<% form_tag :action => 'submit' do %>
  <%= submit_tag "サブミット" %>
<% end %>
</body>
</html>
  0
<div style="margin:0;padding:0"><input name="authenticity_token" type="hidden" value="27f5887971b1e7a3170a9f66b79bcabfdcc22cce" /></div>

  0
  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
<html>
<head>
<title>Tutorial: CSRF</title>
  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
  <%= stylesheet_link_tag 'ror' %>
</head>
<body>
<h2>Tutorial: CSRF</h2>
<%= @message %>
</body>
</html>
  0
  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
class CsrfController < ApplicationController
  
  #グローバル例外にCSRFエラーの例外を登録します。
  rescue_from ActionController::InvalidAuthenticityToken, :with => :invalidToken  
  #入力画面表示
  def index
    render :action => 'index.html.erb'
  end
  
  #結果画面表示
  def submit
    @message = "CSRF(Cross-Site Request Forgery)ではありませんでしたぁ〜"
    render :action => 'result.html.erb'
  end
  
  #CSRFを検知した場合に呼ばれるメソッド
  def invalidToken
    render(:text => 'CSRF(Cross-Site Request Forgery)でしたぁ〜')
  end
  private :invalidToken
  
end

添付ファイル: filetutorial_csrf_3.jpg 208件 [詳細] filetutorial_csrf_2.jpg 217件 [詳細] filetutorial_csrf_1.jpg 201件 [詳細]

リロード   新規 編集 凍結解除 差分 添付 複製 名前変更   ホーム 一覧 単語検索 最終更新 バックアップ リンク元   ヘルプ   最終更新のRSS
Last-modified: 2012-08-08 (水) 23:25:35 (2925d)