0

我的应用程序控制器如下所示:

class ApplicationController < ActionController::Base
  protect_from_forgery
  before_filter :check_csrf
  def check_csrf
    if not verified_request?
      redirect_to root_url, :error => "forgery protection"
      return
    end
  end
end

如果没有 check_csrf,Rails 会在错误响应时向服务器控制台写入警告,然后像往常一样继续执行。所以我不得不编写自己的 check_csrf。现在它工作正常。这是正确的吗?有没有更简单的方法来停止执行错误请求?

导轨版本:3.1。

4

1 回答 1

2

我认为您应该覆盖handle_unverified_request

像这样的东西:

class ApplicationController < ActionController::Base
  protect_from_forgery

  protected
    def handle_unverified_request
      redirect_to root_url, :error => "forgery protection"
    end
end
于 2011-11-27T12:37:55.483 回答