gpt4 book ai didi

security - 是什么阻止人们使用 JS 读取表单输入中的 CSRF token

转载 作者:行者123 更新时间:2023-12-02 19:25:16 25 4
gpt4 key购买 nike

我见过的大多数框架都会在表单中插入一个隐藏的输入元素,其值为 CSRF token 。这是为了防止用户 Bob 登录我的网站然后转到 http://badsite.com它嵌入了 img 标签或 JS,告诉我的网站使用 Bob 仍然登录的 session 执行请求。

我没有得到的是阻止 badsite.com 上的 JS 通过 AJAX 请求带有我网站上的表单的 URL、从隐藏的输入元素中正则表达式处理 CSRF token ,然后使用该 AJAX 发布到我的网站有效的 CSRF token ?

在我看来,您希望使用 JS 在运行时将 CSRF token 插入表单中,从 cookie 中提取值(badsite.com 无法访问该值)。但是,我没有听说过这种方法,而且很多框架都使用 CSRF token 进行简单的隐藏输入,我想知道我的解决方案是否过度设计,并且我缺少使隐藏输入方法安全的某些部分.

有人可以澄清一下吗?谢谢!

最佳答案

what stops JS on badsite.com from AJAX requesting a URL with a form on my site

Same Origin Policy (除非你用过于自由的 CORS header 颠覆它)。未经该主机的许可,在某个网站上运行的 JavaScript 无法从该主机上托管的网站读取数据。

SOP 有一些解决方法,但它们要么需要读取数据的主机的合作(JSON-P、CORS),要么不传递任何标识特定用户的数据(因此无法访问任何需要授权的内容)。

关于security - 是什么阻止人们使用 JS 读取表单输入中的 CSRF token ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12823390/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com