gpt4 book ai didi

security - 单页应用程序和 CSRF

转载 作者:行者123 更新时间:2023-12-05 05:39:58 25 4
gpt4 key购买 nike

假设我们有一个由 nginx 在域 example.com 提供的 SPA 和一个在 api.example.com 托管的 REST API。

SPA 和 API 之间的身份验证通过 JWT 进行。由 SPA 存储在 localstorage 中的短期(15 分钟)访问 token 和由服务器在 HttpOnly cookie 上设置的长期(几天)刷新 token 。域 example.com 的服务器上允许 CORS。

问题 1:我昨天和一位同事讨论过这个问题,他们认为因为我的刷新 token 驻留在 cookie 中,所以我需要为我的应用程序提供 CSRF 保护。我不同意 refresh-token 不能用于“访问”任何私有(private)资源并且仅在 GET 向公开 token 的特定端点的请求期间由服务器检查的帐户SPA 的交换机制。

Q1.这个推理正确吗?是否有任何方法可以恶意利用 HttpOnly cookie 中的刷新 token ?

问题 2:进一步思考这个问题,即使我们要寻求一些 CSRF 保护,如果没有,那就安心了。您将如何首先将 token 发送给客户?我们不使用表单并完全在客户端呈现 UI,因此隐藏字段是不可能的,索引文件由 nginx 提供,因此我们也不能在 HTML 中嵌入元标记。

Q2.有没有办法让 CSRF 保护对单页应用起作用?

最佳答案

我相信将刷新 token 保存在 cookie 中是可以的。只需确保 cookie 可以仅发送到负责刷新的一个端点,并满足可用的 OWASP 应用程序安全验证标准 V3.4 中提到的其他 cookie 保护要求 here .

如果有人通过 CSRF 攻击你,最糟糕的情况是什么?他可能会强制您刷新 token 。但 token 不会以任何方式暴露给攻击者,因此不会发生泄漏。

如果尽管如此您将被迫解决 CSRF 问题,也请看一下:https://cheatsheetseries.owasp.org/cheatsheets/Cross-Site_Request_Forgery_Prevention_Cheat_Sheet.html

关于security - 单页应用程序和 CSRF,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72553310/

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