Rails 4在哪里存储用于CSRF保护的身份验证令牌?

 夜幕下的狂人_119 发布于 2023-01-16 17:49

在我的一个控制器中,我编写以下内容以保护CSRF中的某些页面.

  protect_from_forgery :only => [:foo, :bar]

当我加载URL的对应于foobar,和我查看HTML,我没有看到任何隐藏的输入域或包含任何安全令牌的meta标签,描述在这里.

但是,在测试期间,我确实发现这CSRF对这些页面无效,尽管它对同一应用程序中未受保护的其他页面有效.

那么在哪里Rails 4存储用于验证请求来自原始页面的安全令牌?

请注意,我已经通过阅读Ruby on Rails的安全指南,并从部分上protect_from_forgery,它说

这将自动包含所有表单中的安全令牌和Rails生成的Ajax请求.如果安全令牌与预期的不匹配,则会重置会话.

问题是,启用CSRF保护的页面上的表单中似乎缺少此安全令牌,即使CSRF确实对它们无效.


请注意,此代码来自一个类项目,其中一个目标是执行clickjacking攻击以绕过CSRF项目.我在这里提出的问题与作业的目的正交的.

我只是好奇Rails如何做CSRF.

rails server直接做之后,我找不到安全令牌的相关URL是http://localhost:3000/protected_transfer.

撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有