当前位置: 首页 > wzjs >正文

北京发布紧急通知2023年南宁seo外包平台

北京发布紧急通知2023年,南宁seo外包平台,青海省住房和建设门户网站,自己做副业可以抢哪个网站Cookie、Session和Token的区别 存储位置数据容量安全性生命周期性能Cookie客户端(通常是浏览器)4KB、Cookie数量也有限制不安全、XSS(跨站脚本攻击)、CSRF(跨站请求伪造)可以设置过期时间,过期后…
Cookie、Session和Token的区别
存储位置数据容量安全性生命周期性能
Cookie客户端(通常是浏览器)4KB、Cookie数量也有限制不安全、XSS(跨站脚本攻击)、CSRF(跨站请求伪造)可以设置过期时间,过期后自动删除可能会影响网络传输效率,尤其是在Cookie数据较大时
Session服务器端不受数据大小的限制,主要受限于服务器的内存大小更安全、仍然需要防范Session劫持(通过获取他人的Session ID)和会话固定攻击可以设置Session的超时时间这可能会增加服务器的负载,特别是在高并发场景下。
Token客户端无需太多存储空间,用CPU加解密的时间换取存储空间

Token机制的安全性依赖于服务端加密算法和密钥的安全性

设置过期时间Token避免了Session机制带来的海量信息存储问题,也避免了Cookie机制的一些安全性问题,属于典型的时间换空间的思路。

 Cookie通过请求头部发送给服务器:

GET /sample_page.html HTTP/1.1
Host: www.example.org
Cookie: yummy_cookie=choco; tasty_cookie=strawberry

Cookie内部结构: 

Set-Cookie: <cookie名>=<cookie值>HTTP/1.0 200 OK
Content-type: text/html
Set-Cookie: yummy_cookie=choco
Set-Cookie: tasty_cookie=strawberry

Session实现主要两种方式:cookie充当载体与url重写(Cookie禁用)

原始的URL:
http://taobao.com/getitem?name=baymax&action=buy
重写后的URL:
http://taobao.com/getitem?sessionid=1wui87htentg&?name=baymax&action=buy

Token交互流程 

JWT 令牌结构:

第一部分是令牌头(Header):它描述了令牌的类型(统一为 typ:JWT)以及令牌签名的算法,示例中 HS256 为 HMAC SHA256 算法的缩写,其他各种系统支持的签名。

第二部分是负载(Payload):这是令牌真正需要向服务端传递的信息。针对认证问题,负载至少应该包含能够告知服务端“这个用户是谁”的信息,针对授权问题,令牌至少应该包含能够告知服务端“这个用户拥有什么角色/权限”的信息。JWT 的负载部分是可以完全自定义的,根据具体要解决的问题不同,设计自己所需要的信息,只是总容量不能太大,毕竟要受到 HTTP Header 大小的限制。

第三部分是签名(Signature):签名的意思是:使用在对象头中公开的特定签名算法,通过特定的密钥(Secret,由服务器进行保密,不能公开)对前面两部分内容进行加密计算,以例子里使用的 JWT 默认的 HMAC SHA256 算法为例,将通过以下公式产生签名值:

HMACSHA256(base64UrlEncode(header) + "." + base64UrlEncode(payload) , secret)

JWT常见的使用方式是附在名为 Authorization 的 Header 发送给服务端 

GET /restful/products/1 HTTP/1.1
Host: icyfenix.cn
Connection: keep-alive
Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyX25hbWUiOiJpY3lmZW5peCIsInNjb3BlIjpbIkFMTCJdLCJleHAiOjE1ODQ5NDg5NDcsImF1dGhvcml0aWVzIjpbIlJPTEVfVVNFUiIsIlJPTEVfQURNSU4iXSwianRpIjoiOWQ3NzU4NmEtM2Y0Zi00Y2JiLTk5MjQtZmUyZjc3ZGZhMzNkIiwiY2xpZW50X2lkIjoiYm9va3N0b3JlX2Zyb250ZW5kIiwidXNlcm5hbWUiOiJpY3lmZW5peCJ9.539WMzbjv63wBtx4ytYYw_Fo1ECG_9vsgAn8bheflL8

JWT的缺点: 

  • 令牌难以主动失效:JWT 令牌一旦签发,理论上就和认证服务器再没有什么瓜葛了,在到期之前就会始终有效,除非服务器部署额外的逻辑去处理失效问题,这对某些管理功能的实现是很不利的。譬如一种颇为常见的需求是:要求一个用户只能在一台设备上登录,在 B 设备登录后,之前已经登录过的 A 设备就应该自动退出。如果采用 JWT,就必须设计一个“黑名单”的额外的逻辑,用来把要主动失效的令牌集中存储起来,而无论这个黑名单是实现在 Session、Redis 或者数据库中,都会让服务退化成有状态服务,降低了 JWT 本身的价值,但黑名单在使用 JWT 时依然是很常见的做法,需要维护的黑名单一般是很小的状态量,许多场景中还是有存在价值的。
  • 相对更容易遭受重放攻击:首先说明 Cookie-Session 也是有重放攻击问题的,只是因为 Session 中的数据控制在服务端手上,应对重放攻击会相对主动一些。要在 JWT 层面解决重放攻击需要付出比较大的代价,无论是加入全局序列号(HTTPS 协议的思路)、Nonce 字符串(HTTP Digest 验证的思路)、挑战应答码(当下网银动态令牌的思路)、还是缩短令牌有效期强制频繁刷新令牌,在真正应用起来时都很麻烦。真要处理重放攻击,建议的解决方案是在信道层次(譬如启用 HTTPS)上解决,而不提倡在服务层次(譬如在令牌或接口其他参数上增加额外逻辑)上解决。
  • 只能携带相当有限的数据:HTTP 协议并没有强制约束 Header 的最大长度,但是,各种服务器、浏览器都会有自己的约束,譬如 Tomcat 就要求 Header 最大不超过 8KB,而在 Nginx 中则默认为 4KB,因此在令牌中存储过多的数据不仅耗费传输带宽,还有额外的出错风险。
  • 必须考虑令牌在客户端如何存储:严谨地说,这个并不是 JWT 的问题而是系统设计的问题。如果授权之后,操作完关掉浏览器就结束了,那把令牌放到内存里面,压根不考虑持久化才是最理想的方案。但并不是谁都能忍受一个网站关闭之后下次就一定强制要重新登录的。这样的话,想想客户端该把令牌存放到哪里?Cookie?localStorage?Indexed DB?它们都有泄漏的可能,而令牌一旦泄漏,别人就可以冒充用户的身份做任何事情。

http://www.dtcms.com/wzjs/404380.html

相关文章:

  • 用bootstarp做的网站山东疫情最新消息
  • 做网站片头的软件优化营商环境 提升服务效能
  • 毕业设计网站开发的中期报告业务推广方案怎么写
  • 网站广告推广怎么做的百度竞价排名是哪种方式
  • wordpress游戏网站主题微信管理系统
  • 网站栏目页描述怎么写百度医生在线问诊
  • 专业定制网站建设哪里有西安网站推广助理
  • 知名网站建设公司排名互动营销
  • 视频投票网站怎么做高端网站建设案例
  • 蓬莱做网站哪家好购物网站大全
  • 分类信息网站怎么做SEO营销型企业网站有哪些平台
  • jsp asp php哪个做网站巨量引擎
  • 网页设计软件介绍seo网络优化公司哪家好
  • 深圳手机网站建设服务长沙网红打卡地
  • 个人电脑做网站打不开数据库南昌seo招聘信息
  • wordpress博客程序网站建设与优化
  • 做网站可能遇到的困难静态网页设计与制作
  • 传媒公司怎么运营青岛网站seo推广
  • 做网站找谁好媒体网络推广价格优惠
  • 那个网站的详情做的好校园推广
  • 专业房产网站建设公司世界足球排名
  • 企业创建网站的途径影视剪辑培训机构排名
  • 潍坊做网站潍坊做网站粤语seo是什么意思
  • 顺德网站设计制作搜索引擎优化报告
  • 那个推广平台好用百度优化seo
  • 医疗机械网站怎么做b2b多平台一键发布
  • 注册公司网站开发建设营业项目武汉seo工作室
  • 保定企业网站开发b站2023推广网站
  • 做家装的网站有哪些网络营销软件条件
  • wordpress contactus百度关键词优化送网站