gpt4 book ai didi

security - 我需要在基于 cookie 的 API 中使用 CSRF token 吗?

转载 作者:行者123 更新时间:2023-12-01 22:58:04 24 4
gpt4 key购买 nike

我在 Next.js (NextAuth.js) 中有一个只有前端会使用的 API。它使用 cookie 进行身份验证。我的问题是恶意网站可以使用 CSRF 更改用户的数据吗?我应该实现 CSRF token ,还是可以防止恶意网站在没有它的情况下更改数据?

最佳答案

如果身份验证基于浏览器随请求自动发送的内容(如 cookie),那么是的,您很可能需要针对 CSRF 的保护。

您可以自己尝试:在一个源上设置服务器(例如 localhost:3000),在另一个源上设置攻击者页面(例如 localhost:8080,它与不同的域相同,由攻击者控制) .现在在 :3000 上登录到您的应用程序,并在您的攻击者来源上创建一个页面,该页面将发布到 :3000 一些更改数据的内容。您会看到虽然 :8080 不会收到响应(因为同源策略),但 :3000 确实会收到并处理请求。它还将接收为 :3000 设置的 cookie,无论用户从何处发出请求。

为了缓解,您可以实现同步器 token 模式(csrf token )、双重提交,或者您可以决定依赖 cookie 的 SameSite 属性,旧浏览器不支持,但较新的浏览器支持,因此存在一些风险,具体取决于您的用户是谁。

关于security - 我需要在基于 cookie 的 API 中使用 CSRF token 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72524072/

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