按照Rails入门指南获取ActionController :: InvalidAuthenticityToken

时间:2014-02-04 05:33:25

标签: ruby-on-rails ruby actioncontroller

我跟踪导轨入门指南: http://guides.rubyonrails.org/getting_started.html

我正在创建帖子',我在其中设置我的新视图以向我的控制器提交帖子。 当我单击视图中的提交按钮时,我收到错误ActionController :: InvalidAuthenticityToken

我能够通过在ApplicationController

中注释掉这一行来解决错误
protect_from_forgery with: :exception

但是我不确定我是否应该这样做。那很好还是我应该深入研究这个问题?那条线做了什么?

内容: /views/layouts/application.html.erb

<!DOCTYPE html>
<html>
<head>
  <title>Budget</title>
  <%= stylesheet_link_tag    "application", media: "all", "data-turbolinks-track" => true %>
  <%= javascript_include_tag "application", "data-turbolinks-track" => true %>
  <%= csrf_meta_tags %>
</head>
<body>

<%= yield %>

</body>
</html>

1 个答案:

答案 0 :(得分:1)

不,你不应该在ApplicationController中评论该行。它旨在确保您的应用程序在生产级别的安全性。

来自docs:打开请求伪造保护。请记住,只检查非GET,HTML / JavaScript请求。

protect_from_forgery 是Rails中的一项功能,可防御Cross-site Request Forgery (CSRF)攻击。此功能使所有生成的表单都具有隐藏的id字段。此id字段必须与存储的id匹配,否则不接受表单提交。这可以防止插入XSS的其他站点或表单上的恶意表单提交到Rails应用程序。从here无耻地复制。

而且,最后但并非最不重要。这里有the link解释为什么应该认真对待跨站请求伪造(CSRF),以及为什么它很重要。

相关问题