【发布时间】:2020-12-02 15:56:15
【问题描述】:
如果令牌在页面源中可见(即隐藏的输入字段),这不会破坏目的吗?令牌只能从页面源中获取。可能是我想多了,但是 CSRF 令牌不应该只在成功登录时生成吗?
【问题讨论】:
如果令牌在页面源中可见(即隐藏的输入字段),这不会破坏目的吗?令牌只能从页面源中获取。可能是我想多了,但是 CSRF 令牌不应该只在成功登录时生成吗?
【问题讨论】:
CSRF 令牌应该在与客户端建立会话之后生成,而不必仅在身份验证之后生成。正如您所建议的,恶意网站仍然可以通过抓取页面源从您的网站获取 CSRF 令牌,但他们收到的 CSRF 令牌对目标用户的会话无效。
在会话级别使用 CSRF 令牌的另一个优点是,您还可以保护您的身份验证表单免受 CSRF 攻击。您需要创建会话预身份验证才能使其正常工作。
【讨论】:
页面中的 CSRF 令牌与与浏览器关联的 CSRF 令牌(例如通过 cookie 或会话)进行比较。
所以考虑一下这种攻击:
受害者和良好站点是安全的。
【讨论】:
CSRF 令牌与身份验证没有直接关系,它们可以用于任何形式。 CSRF 令牌的目的是关联两件事:
一般的做法是这样的:
此检查很重要的原因是恶意用户可以查看您网站上的表单,复制和操作它,然后诱骗用户提交它。对于您的服务器,这看起来像是用户提交了真实的表单,因此如果没有 CSRF 检查,您将接受来自受害者而非攻击者的指令。
【讨论】: