http - 用户在发出 http 请求时可以看到 JWT 吗?
问题描述
我正在从 React 向我们的 API 发出 http 请求以进行身份验证。我fetch
用来提出请求。
我的问题是,用户可以转到 chrome 开发工具中的网络选项卡,找到请求并查看自己的令牌吗?
解决方案
这取决于。
通常,用户可以在 Chrome 开发工具的网络面板中看到 HTTP 请求中的所有请求标头。
但是,在 Chrome 67 之后,引入了一个名为“站点隔离”的新功能,并默认启用。因此:
在 Chrome 的 DevTools 中,cookie 和其他请求标头不会显示在跨站点子资源请求的网络面板中。
也就是说,如果 JWT 令牌在子域站点中通过 cookie 传输,并且 JWT-cookie 的域是通配符,则不会在 Network 面板中显示。
这是一个例子。cookietoken
的域是.miaotest.com
,它用于对站点的 HTTP 请求cshao.miaotest.com
。虽然此 cookie 已成功传输到后端,但您不会在开发工具的“请求标头”部分看到它。
请注意,可以通过访问 Chrome 中的chrome://flags/#site-isolation-trial-opt-out来禁用“站点隔离”功能。