gpt4 book ai didi

javascript - 我们应该在哪里存储 session ID

转载 作者:行者123 更新时间:2023-12-05 00:28:44 26 4
gpt4 key购买 nike

我了解到,对于基于 session 的身份验证, session ID 通常存储在浏览器的 cookie 中,并且会在每次请求时发送回服务器。
而且我猜有多种发送 session ID 的途径(cookie、 header 、请求正文、URL 等)
那么将 session ID 存储在 cookie 或 HTTP header 或请求正文甚至 URL 中的含义或权衡是什么?

最佳答案

假设我们谈论的是一个普通的 web 应用程序,服务器可以自己设置一个 cookie,这是一个非常透明的过程:你的前端代码在认证时不需要读取这个 token ,将其存储在本地,并转发到每个请求而不是需要手动。所有可能出错的事情。服务器将设置它,浏览器会将其作为所有后续请求的 header 的一部分发回。
直到很久以前,这也是一个问题,必须以某种方式缓解 csrf 攻击,以确保使用适当 session id 发送的任何请求实际上是合法的,而不是某些随机站点恶意制作发布请求的结果.与 samesite选项,cookie 仅在验证请求来源后由浏览器发送。
从安全 Angular 来看,带有 httponly 的 cookies 无法通过 javascript 访问。存储 token 的典型替代方案是本地存储,但一旦发生 xss 漏洞,该 token 可能会受到损害。
您通常还希望避免在请求中将 token 作为查询字符串的一部分发送。虽然 url 在传输中的普通 https 请求中不可见,但您选择的网络服务器可能会将这些请求记录在一个文件中,该文件将包含不应存在的敏感信息。
用户也可能通过复制/粘贴网址意外共享它们。

关于javascript - 我们应该在哪里存储 session ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69969023/

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