Rails中Application Controller中的'protect_from_forgery'

时间:2012-12-13 11:32:39

标签: ruby-on-rails applicationcontroller

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

class ApplicationController < ActionController::Base
  protect_from_forgery
end

任何人都可以告诉我project_from_forgery的含义以及使用它的原因吗?

3 个答案:

答案 0 :(得分:8)

答案 1 :(得分:2)

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

从此链接了解详情,

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

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

答案 2 :(得分:-2)

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

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

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