我想知道是否可以将crsf令牌放在<head>
,元标记或其他内容上,然后在我的服务器上访问它。它将真正简化流程并使其更加透明。我只是不知道如何。我真的希望在没有javascript的情况下这样做。
我认为rails实现了类似的东西......可能会使用etags吗?
答案 0 :(得分:3)
CSRF令牌的基本目的是在每次提交表单时将其传送回服务器。您将唯一令牌传递给页面,当提交该页面上的表单时,令牌会随之返回。
如果您没有在表单上包含令牌(或使用JavaScript以编程方式将令牌添加到当前页面上其他位置的表单),则不会将其发送回服务器。
也许更好的问题是:你真正想要完成的是什么?换句话说,为什么你不想在表单中包含CSRF令牌?您希望在您的方案中克服哪些缺点?
答案 1 :(得分:3)
CSRF prevention cheat sheet上列出了许多方法。在每个表单上都不需要隐藏字段的是to check the referer。请记住,缺少引用程序应被视为CSRF攻击,并可能导致某些隐私浏览器插件出现问题(这种情况非常罕见)。