2

使用 Rails 3.0.3 和 Heroku

我的 Heroku 应用程序上的表单帖子出现 InvalidAuthenticityToken 之类的错误。在我的应用程序控制器中,我启用了protect_from_forgery。

class ApplicationController < ActionController::Base
  protect_from_forgery
  ...
end

我的搜索表单

<%= form_tag(searchresults_url) do %>
  <%= text_field_tag :search_query, '', :size => 14 %> <%= submit_tag (t :search) %>
<% end %>

路线:

match 'searchresults' => 'home#searchresults', :as  => :searchresults

class HomeController < ApplicationController


  def searchresults

    @query = query_string
        @entries_found = Counter.where(...)     

  end


end

当有人尝试通过我的搜索表单搜索网站并且他们禁用了 cookie并使用智能手机时,就会发生无效的令牌错误。我曾尝试使用禁用 cookie 的网络浏览器 (Firefox) 访问该网站,但效果很好。

我在我创建的“搜索引擎”上没有出现这种行为(以我无法在这个应用程序中使用的方式)所以出了什么问题。为什么只禁用智能手机和 cookie?

我能做些什么来完成这项工作?

4

1 回答 1

0

一个快速而肮脏的“解决方案”是添加

protect_from_forgery :only => [:create, :update, :destroy]

对于相关的控制器。我不确定这会给网站带来什么风险......

于 2012-10-03T10:16:37.377 回答