Open Lawguancong opened 3 years ago
存储于服务器,可以理解为一个状态列表,拥有一个唯一识别符号sessionId,通常存放于cookie中。服务器收到cookie后解析出sessionId,再去session列表中查找,才能找到相应session。依赖cookie
类似一个令牌,装有sessionId,存储在客户端,浏览器通常会自动添加。 举例:服务员看你的身份证,给你一个编号,以后,进行任何操作,都出示编号后服务员去看查你是谁。 浏览器自动携带
https://zhuanlan.zhihu.com/p/36197012 https://blog.csdn.net/qq_38553333/article/details/80055521 https://www.jianshu.com/p/ba6500990694
也类似一个令牌,无状态,用户信息都被加密到token中,服务器收到token后解密就可知道是哪个用户。需要开发者手动添加。 举例:直接给服务员看自己身份证 浏览器不会自动携带
JSON Web Token 只是一个跨域认证的方案
Cookie通过在客户端记录信息确定用户身份 Session通过在服务器端记录信息确定用户身份
每次请求都携带一个SessionID的参数;或者使用token令牌,登录后服务端生成一个Token返回给客户端,以后客户端携带token进行数据请求。 缺点:容易被劫取
Json web token (JWT), 是为了在网络应用环境间传递声明而执行的一种基于JSON的开放标准((RFC 7519).该token被设计为紧凑且安全的,特别适用于分布式站点的单点登录(SSO)场景。JWT的声明一般被用来在身份提供者和服务提供者间传递被认证的用户身份信息,以便于从资源服务器获取资源,也可以增加一些额外的其它业务逻辑所必须的声明信息,该token也可直接被用于认证,也可被加密。
https://github.com/Advanced-Frontend/Daily-Interview-Question/issues/106
token不一定放在header里面 1、首先token不是防止XSS的,而是为了防止CSRF的; 2、CSRF攻击的原因是浏览器会自动带上cookie,而浏览器不会自动带上token https://github.com/Advanced-Frontend/Daily-Interview-Question/issues/31 https://blog.csdn.net/liucongmei92/article/details/114291125
参考链接 https://segmentfault.com/a/1190000013258488 https://cloud.tencent.com/developer/article/1683290 https://www.cnblogs.com/JamesWang1993/p/8593494.html
session
存储于服务器,可以理解为一个状态列表,拥有一个唯一识别符号sessionId,通常存放于cookie中。服务器收到cookie后解析出sessionId,再去session列表中查找,才能找到相应session。依赖cookie
cookie
类似一个令牌,装有sessionId,存储在客户端,浏览器通常会自动添加。 举例:服务员看你的身份证,给你一个编号,以后,进行任何操作,都出示编号后服务员去看查你是谁。 浏览器自动携带
前端发送cookie操作
怎么禁止js访问cookie(httponly)
https://zhuanlan.zhihu.com/p/36197012 https://blog.csdn.net/qq_38553333/article/details/80055521 https://www.jianshu.com/p/ba6500990694
token
也类似一个令牌,无状态,用户信息都被加密到token中,服务器收到token后解密就可知道是哪个用户。需要开发者手动添加。 举例:直接给服务员看自己身份证 浏览器不会自动携带
jwt
JSON Web Token 只是一个跨域认证的方案
Cookie通过在客户端记录信息确定用户身份 Session通过在服务器端记录信息确定用户身份
如果浏览器禁止了cookie怎么办?
每次请求都携带一个SessionID的参数;或者使用token令牌,登录后服务端生成一个Token返回给客户端,以后客户端携带token进行数据请求。 缺点:容易被劫取
前后端实现登录的方式有哪些?
Json web token (JWT), 是为了在网络应用环境间传递声明而执行的一种基于JSON的开放标准((RFC 7519).该token被设计为紧凑且安全的,特别适用于分布式站点的单点登录(SSO)场景。JWT的声明一般被用来在身份提供者和服务提供者间传递被认证的用户身份信息,以便于从资源服务器获取资源,也可以增加一些额外的其它业务逻辑所必须的声明信息,该token也可直接被用于认证,也可被加密。
介绍下如何实现 token 加密
https://github.com/Advanced-Frontend/Daily-Interview-Question/issues/106
cookie和token都存放在header里面,为什么只劫持前者?
token不一定放在header里面 1、首先token不是防止XSS的,而是为了防止CSRF的; 2、CSRF攻击的原因是浏览器会自动带上cookie,而浏览器不会自动带上token https://github.com/Advanced-Frontend/Daily-Interview-Question/issues/31 https://blog.csdn.net/liucongmei92/article/details/114291125
参考链接 https://segmentfault.com/a/1190000013258488 https://cloud.tencent.com/developer/article/1683290 https://www.cnblogs.com/JamesWang1993/p/8593494.html