我看过的大多数框架都会在表单中插入一个隐藏的输入元素,其值为 CSRF 令牌。这是为了防止用户 Bob 登录我的网站,然后访问http://badsite.com,该网站嵌入了 img 标签或 JS,告诉我的网站使用 Bob 仍然登录的会话执行请求。
我没有得到的是阻止 badsite.com 上的 JS 从 AJAX 请求带有我网站上的表单的 URL,从隐藏的输入元素对 CSRF 令牌进行正则表达式,然后使用该有效的 CSRF 令牌发布到我的网站的 AJAX ?
在我看来,您可能想在运行时使用 JS 将 CSRF 令牌插入表单,从 cookie 中提取值(badsite.com 无法访问)。但是,我没有听说过这种方法,而且很多框架都使用 CSRF 令牌进行简单的隐藏输入,我想知道我的解决方案是否过度设计,并且我错过了使隐藏输入法安全的某些部分.
任何人都可以提供一些清晰度吗?谢谢!