我特别考虑登录表单:
就其本质而言,登录表单会阻止对任意输入的操作——如果没有有效的用户名和密码,你就会被退回。为什么这些甚至需要添加authenticity_token
或类似的跨站点请求伪造保护?
我很好奇登录表单是否是 CSRF 甚至通常不受欢迎的一个例子:
给定一个匿名客户端,应该允许与站点的第一个联系点是 POST 有效的登录凭据。CSRF 通过首先要求客户端执行 GET 以建立匿名会话 cookie 来防止这种直接交互,该 cookie 用作其authentity_token 的基础。然后必须使用登录凭据发回令牌。当这里的实际目标是验证没有会话到达并试图提供其凭据的用户时,额外的前期步骤似乎毫无意义。
在这种情况下,我是否缺少一些安全考虑?