现在还有用 cookies 吗
接手公司的老项目,很多安全和身份相关的功能都是用 cookies 实现的。这玩意儿感觉既不好测试又不安全,以往都是使用 token 来做的身份安全相关
不知道现在在 web 端主流是用 cookies 还是 token ?
接手公司的老项目,很多安全和身份相关的功能都是用 cookies 实现的。这玩意儿感觉既不好测试又不安全,以往都是使用 token 来做的身份安全相关
不知道现在在 web 端主流是用 cookies 还是 token ?
然后 session_id / token 使用 cookies 或者 其他方式 存起来而已。
但是依然有将一些 加密后的数据使用 cookie 存在客户端。
骄傲的狗脸.jpg
即使你不用 cookie 那套,自己实现管理 token,这个 token 不一样也要存客户端?
国内的京东、淘宝不一样用 cookie 用的挺欢?
另外 cookie 好像不带 s,有大佬讲一下应该拼 cookie 还是 cookies 么?
还不如存 Cookie 里,起码可以用 HttpOnly 来保护一下……
如果不加 HttpOnly,我 XSS 直接偷你的 Cookie 丢出来,我在外面想怎么用怎么用,多方便。
and 其实搜一下 ” XSS 窃取 Cookie ” 就能找到很多例子……
顺便说一下:
我并不是拥护 Cookie,Cookie 机制也有很多劣势(例如无脑带 Cookie 导致无关请求的体积增大);
只是说在 『限制 JS 读取凭据』这件事上,Cookie 有一定的优势。
如果是 B/S 的话,通常做法是把 token 放在 cookies 中吧
如果是 B/S 的话,通常做法是把 token 放在 cookies 中吧
放进 localStorage 的话,XSS 脚本就能获取到(然后发送出去);
放加了 HttpOnly 的 Cookie 里面,XSS 脚本获取不到了,于是就不会有(能发出去)这个问题。
麻烦大家提高一点专业素质,真当码农是农民呢。
Token 的优势在于不依赖浏览器标准,任何非浏览器客户端也可以轻松使用,比如 App 端,处理 Cookie 的时候复杂度往往比较高,用 token 简单明了。
Cookie 的优势在于有浏览器标准的支持,很多功能不需要自己实现,只要浏览器按照标准设计,就能直接使用 Cookie 的特性。
Token 本身不包括存储技术,客户端希望保持会话的话是需要自己提供机制来存储 Token 的,在浏览器端可以用 Web Storage 来存储,在 App 端可以直接存在本地数据库或文件里。
传输方式上:Cookie 是封装好的、在 Header 里传输的方式; Token 可以自己封装用 Header 里的某字段来传,也可以直接在 URL 里传,比较灵活。
然后因为 Cookie 广泛用于用户数据追踪的技术,所以国际上通常要求在用户同意的情况下使用 Cookie 。
做前端这都搞不清,果然是娱乐圈……
另外说一点,鉴于你说的这么肤浅,估计你都没考虑过,token 放 header 传输真心是 app 整出来的复合 http 认真协议。但是浏览器上一旦发生跨域请求的时候,如果服务端不做额外设置,浏览器无论如何会发两次请求,一次 option,请求询问是否可以用这个 header 头。
前后分离的设计,传输接口只有内容,没有行为,行为完全由前端控制,Set-Cookie Location 等带有行为的 http header 就不应该出现。