防止 CSRF,无需所有形式的隐藏输入

问题描述 投票:0回答:3
我想知道是否可以将 crsf 令牌放在

<head>

 中的元标记或其他东西上,然后在我的服务器上访问它。这确实会简化流程并使其更加透明。我只是不知道怎么办。我真的希望在不涉及 JavaScript 的情况下做到这一点。

我认为 Rails 实现了类似的东西......也许有 etag?

php html security csrf
3个回答
3
投票
CSRF预防备忘单

上列出了很多方法。不需要在每个表单上都有隐藏字段的方法是检查引荐来源网址。请记住,缺少引用应该被视为 CSRF 攻击,并且可能会导致某些隐私浏览器插件出现问题(这种情况非常罕见)。


3
投票

如果您不在表单中包含令牌(或使用 JavaScript 以编程方式将令牌添加到页面当前其他位置的表单中),则该令牌不会被发送回服务器。

也许更好的问题是:你真正想要实现的目标是什么?换句话说,为什么您不想在表单中包含 CSRF 令牌?在您的场景中您希望克服的缺点是什么?


0
投票
csrf 预防

指南详细介绍了一种使用自定义标头的技术,其中服务器在 cookie 中设置 csrf 令牌,使用服务器端机密的 HMAC 和会话特有的一些数据是常见的。然后,客户端将其写入对服务器的所有请求的自定义标头中。不需要隐藏输入,不需要额外的服务器状态。

© www.soinside.com 2019 - 2024. All rights reserved.