【问题标题】:XSRF token validationXSRF 令牌验证
【发布时间】:2022-01-20 17:08:24
【问题描述】:

由于 XSRF 验证涉及将 UI 请求中发送的 cookie/令牌与作为同一请求的一部分的请求标头进行匹配,因此在本地进行测试的选项有哪些? 因此,假设我在本地运行我的 UI 并且指向托管在不同位置的服务器,则 cookie 将永远无法在 localhost 上读取(因为它是不同的主机)。在这种情况下,最佳实践是什么 - 它是否在服务器上添加逻辑以识别 Origin 并绕过检查 Origin 是否为 localhost ?

【问题讨论】:

  • 或许可以使用反向代理。因此,当浏览器发出请求时,“localhost”实际上并不像“localhost”。
  • 哦 k...任何参考...我正在为 ui 做出反应..不确定这是 UI 实现还是服务器端?
  • 我们使用内部设置,所以不是立即设置。但是这个代理服务可以将请求拆分到本地 UI 前端层以及后端(可能或可能不在同一台机器上)使用具有“完整域名”的浏览器主机(本地主机条目可以创造奇迹)。对浏览器来说,所有请求似乎都命中同一个“远程”服务器。使用 node.js 可能有一些简单的方法。
  • (错误,应该是“hostfile 条目可以创造奇迹”。)

标签: javascript cookies jwt csrf x-xsrf-token


【解决方案1】:

在这种情况下,我通常会使用/etc/hosts 并为我在本地运行的代码使用子域。例如。 UI 在www.example.com 上运行,服务器在api.example.com 上,然后在我的hosts 文件中我将www.example.com 指向localhost。

如果 cookie 不是同站点 cookie 并且服务器具有正确的 CORS 设置,那么实际上从 localhost 使用它们应该不是问题。您的 UI 将无法访问它们,但浏览器应将它们与任何请求一起发送到服务器。 (CORS 应该允许凭据,并且 UI 的 http 客户端应该使用类似 withCredentials: true 标志的东西)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-10-28
    • 2013-06-22
    • 1970-01-01
    • 2023-03-11
    • 1970-01-01
    • 2020-10-29
    • 1970-01-01
    • 2020-11-09
    相关资源
    最近更新 更多