19

config/application_controller.rb我的 Rails 应用程序目录中的文件中,我找到了以下代码:

class ApplicationController < ActionController::Base
  protect_from_forgery
end

谁能告诉我它是什么project_from_forgery意思以及为什么被使用?

4

3 回答 3

10

它可以防止csrf。例如,所有 POST 请求都应该有特定的安全令牌。

http://en.wikipedia.org/wiki/Cross-site_request_forgery

http://guides.rubyonrails.org/security.html#cross-site-request-forgery-csrf

于 2012-12-13T11:36:52.727 回答
2

这是 Rails 内置的功能,可防止 csrf 攻击,

从此链接了解更多信息,

http://railskey.wordpress.com/2012/07/02/rails-protect_from_forgery/

通过将身份验证令牌添加到表单字段作为隐藏字段来防止跨站点脚本攻击。在发布请求时,该令牌与存储在数据库中的令牌匹配。

于 2012-12-13T11:36:19.887 回答
-1

protect_from_forgery:Rails 中的一项功能,可防止跨站点请求伪造 (CSRF) 攻击。

此功能使所有生成的表单都有一个隐藏id字段。该id字段必须与存储id的匹配,否则不接受表单提交。

这可以防止其他站点上的恶意表单或插入 XSS 的表单提交到 Rails 应用程序。

于 2013-12-17T10:46:54.310 回答