gpt4 book ai didi

javascript - 窃取 CSRF token

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:31:12 31 4
gpt4 key购买 nike

我已经阅读了 Stack Overflow 上的其他问题,但没有找到这个问题的明确答案:

是什么阻止了攻击者通过 JS 窃取用户的 CSRF token ?他不能直接找到 CSRF 元素并用 JS 获取它的值吗?

我对 JS 不是很熟悉,但可能是这样的:

document.getElementById("csrft_token").value

最佳答案

来自 OWASP(https://www.owasp.org/index.php/Cross-Site_Request_Forgery_(CSRF))

Cross-Site Request Forgery (CSRF) is an attack that forces an end user to execute unwanted actions on a web application in which they're currently authenticated. CSRF attacks specifically target state-changing requests, not theft of data, since the attacker has no way to see the response to the forged request. With a little help of social engineering (such as sending a link via email or chat), an attacker may trick the users of a web application into executing actions of the attacker's choosing. If the victim is a normal user, a successful CSRF attack can force the user to perform state changing requests like transferring funds, changing their email address, and so forth. If the victim is an administrative account, CSRF can compromise the entire web application.

根据定义,CSRF 攻击向量与被攻击的服务器不在同一台服务器上,因此它无法访问该信息。

一个基本的例子:

受害者 - 鲍勃

站点 - foo.com

攻击者 - 约翰

John 无法访问 foo.com,但他可以通过网站或电子邮件访问 Bob。他知道 foo.com 的工作原理,因此他可以将请求绑定(bind)到电子邮件或不在 foo.com 域中的恶意网站。这将发送请求并附带 Bob 的凭据。

同源策略阻止 John 查看或拦截 Bob 版本的 foo.com 的任何内容,这就是为什么 CSRF key 可以存储在 Bob 从 foo.com 收到的页面上而 John 永远看不到的原因。

如果 John 能够使用 JS 实际看到 token ,则意味着 John 可以访问来自 foo.com 的请求,在这种情况下,这可能是中间人攻击或内部攻击。

基本上,CSRF key 的目标只是阻止 CSRF 攻击。如果 CSRF key 本身被拦截,则表示发生了另一次攻击。

关于javascript - 窃取 CSRF token ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39536888/

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