电商平台门户网站建设的重要性wordpress拼团插件

pingmian/2026/1/20 18:03:17/文章来源:
电商平台门户网站建设的重要性,wordpress拼团插件,网站打印模板制作,哈尔滨h5建站模板【答疑解惑】| 作者 / Edison Zhou这是恰童鞋骚年的第267篇原创内容之前有同事问为何要用基于JWT令牌的认证架构#xff0c;然后近期又有童鞋在后台留言问微服务安全认证架构的实践#xff0c;因此我决定花两篇推文来解答一下。为了答好这个话题#xff0c;我们先来看看微服… 【答疑解惑】| 作者 / Edison Zhou这是恰童鞋骚年的第267篇原创内容之前有同事问为何要用基于JWT令牌的认证架构然后近期又有童鞋在后台留言问微服务安全认证架构的实践因此我决定花两篇推文来解答一下。为了答好这个话题我们先来看看微服务的安全认证架构是如何演进而来的从而更好地理解。1单块阶段上首先我们有必要再次了解下认证和授权这两个基本概念认证Authentication识别你是谁。即在网站上用来识别某个用户是否是注册过的合法用户。授权Authorization识别你能做什么。即在网站上用来识别某个用户是否有某方面的权限。然后这里还是引用我在波波老师的《Spring Boot与K8s云原生应用开发》课程中学到的一个案例来学习网站安全架构的演进。假设我们把时间倒退回2006年我们有一个叫做MyShop的网站它的安全架构大概是下面这个样子我们暂且称之为v1版本MyShop v1版本的认证操作可以看到这个v1版本的传统安全认证架构使用到了我们十分熟悉的Session Cookie的模式来实现用户的认证。即当一个注册用户通过登录操作请求后Web服务器通过向数据库进行校验用户名和密码通过后就会向Session中添加一条记录然后返回给浏览器。在返回给浏览器的报文中会将sessionId放在Cookie里头。MyShop v1版本的访问操作这样一来用户在登录之后再访问网站的时候就会将带有sessionId的Cookie传给Web服务器而Web服务器就可以通过Cookie中的sessionId去Session记录中检查如果没有过时就认为其是认证的活跃用户。在ASP.NET Core中提供了一个管理Session的中间件我们可以在StartUp中注册和使用这个中间件即可用来管理会话状态。参考资料ASP.NET Core中的会话和状态管理传送门https://docs.microsoft.com/zh-cn/aspnet/core/fundamentals/app-state?viewaspnetcore-3.12单块阶段下v1版本上线测试之后测试人员发现存在一个问题登录用户会间歇性地退出登录而且会话还没有超时。经过分析后发现原来的Session记录只会在登录过的那台Web服务器上存在而MyShop是以集群方式来部署的由前置的Nginx代理服务器进行负载均衡地请求转发。针对这个问题MyShop设计了下图所示的v1.1版本的认证架构又称为黏性Session架构。也就是说不过哪一次请求Nginx都会将对应的sessionId发给对应的Web服务器进行处理而不是均衡地轮流转发。换句话说Nginx服务器将会维护sessionId与各个Web服务器的Session之间的关联以保证在会话期间的Session绑定。MyShop v1.1版本-黏性会话就这样一晃两三年又过了MyShop v1.1的认证架构支持了它早期的快速发展。但是随着业务和用户量的不断扩展它也逐渐暴露出稳定性和扩展性方面的问题。这些问题归根结底还是由黏性会话所造成的。1稳定性黏性会话会将用户会话绑定到某个服务器上如果我们要对这个服务器进行一些升级或改造又或服务器延迟或宕机那么此服务器上的一波认证用户信息就会瞬间消失用户必须重新登录。2扩展性黏性会话使得Web服务器和Nginx负载均衡服务器上都保存了状态整体上属于一个有状态架构。随着流量的增长这些状态同时给Web服务器和负载均衡器都会带来较大的压力。和无状态的应用架构比起来这种有状态的应用架构比较难以扩展。一般来说常见的解决黏性会话的解决方案有以下几种1会话同步复制即各个Web服务器之间同步Session但是会引入复杂性整体的性能较低。2无状态会话即Session数据不存在服务器端而是存在浏览器端但是存在数据泄露风险且浏览器端对于Cookie的大小有限制4KB。3集中状态会话即将Session集中存储在某个存储中比如Memcached或Redis这种高性能缓存中。因此MyShop选择了集中状态会话的方式演进出了v1.5安全认证架构如下图所示MyShop v1.5版本-集中状态会话在v1.5版本中Web服务器和Nginx服务器不再存储会话状态转而交由Redis进行统一存储从而提高了稳定性和扩展性。对于Redis来说也可以采用高可用集群方案业界也有很多可扩展的实践案例。画外音虽然是单块时代发展出来的技术但是无状态会话和集中状态会话却是微服务安全认证架构的基础。3微服务架构阶段上时光飞逝时间来到了2015年这期间MyShop的业务量也迅速的飞涨期间互联网的技术也发生了大变化。微服务架构、无线应用、SPA应用雨后春笋般的出现MyShop的技术团队也准备陆续应用实践进一步丰富和扩展业务渠道赋能业务端。但是微服务架构的安全认证授权也存在着一些挑战微服务认证授权挑战1后台应用和服务众多如何对每一个服务进行认证和鉴权传统的用户名密码以及Session/Cookie的方式还能够适用吗2前端的用户入口众多如果每个入口都搞一套登录认证显然成本高且难以扩展。有没有一种SSO单点登录的方案经过MyShop技术团队的分析传统的用户名密码Session/Cookie的方式无法直接套用在微服务架构上但是可以借鉴之前的思路他们提出了面向微服务架构的v2.0安全认证体系如下图所示MyShop v2.0版本-基于Token的认证v2.0安全认证体系最大的变化就在于将登陆认证抽取为一个独立的API微服务AuthService拥有一个独立的UserDB。这个服务统一承担登陆认证、用户校验、令牌颁发等职责。此外v2.0版本还引入了Token作为服务调用认证鉴权的主要凭证。这里的话v2.0采用的是一个透明令牌也称为引用令牌即它是一个无意义的随机字符串。这个令牌跟Auth Service上的一次登陆会话相关联后续也可以通过API去校验这个令牌的合法性。画外音其实这个Token令牌就相当于一个SessionId。每个微服务拿到令牌都可以去AuthService进行认证鉴权。总结下来v2.0的安全认证体系的步骤如下Step1.用户通过某种客户端Web/SPA/H5/App等进行登陆AuthService通过比对用户数据库进行校验Step2.AuthService校验通过后会建立一个用户会话Session此Session和之前版本的类似存在一个过期时间可以存储在AuthService所在的服务器上也可以存在Redis中然后颁发一个Token给客户端Step3.客户端向后台微服务发请求会带上刚刚得到的TokenStep4.微服务接收到用户请求时首先会向AuthService发出一个请求对这个Token进行合法性校验Step5.AuthService校验Token通过后会返回该用户的详情信息如果微服务需要的话可以拿到用户的一些比如角色之类的信息Step6.微服务进行自己的逻辑处理最终返回数据给客户端画外音v2.0版本可以看做是v1.5的一个升级改造专门针对微服务架构的场景进行了扩展可以应对微服务架构存在的挑战。它把登录认证、令牌颁发等工作封装在了AuthService中其他微服务统一共用AuthService经过扩展还可以实现SSO单点登录。4微服务架构阶段下v2.0认证架构虽然可以解决问题但是又引发了另外的问题首先每个微服务都需要实现部分认证鉴权的逻辑使得微服务开发方无法聚焦于业务逻辑的开发。其次认证鉴权逻辑分散在每个微服务当中一方面会带来不规范容易出错的问题另一方面也会有潜在的安全风险比如某些开发人员可能会忘记校验令牌。为了解决上面提到的问题同时考虑到微服务拆分后引入微服务API网关MyShop技术团队设计了下图所示的v2.5认证架构TokenGateway结合方式MyShop v2.5版本-基于TokenGateway的认证从上图可以看出该架构将每个微服务都要进行的部分认证鉴权的逻辑从微服务转移到了网关中。即网关处负责拿到令牌向AuthService进行鉴权通过后再将请求转发到后端的微服务微服务不再包含任何认证鉴权的逻辑。总体上通过引入网关进行令牌的鉴权之后大大减少了后端微服务开发方的职责使得他们更专注于微服务的业务逻辑的开发。此外引入网关之后网关可以统一处理登录客户端的校验也便于实现SSO单点登录也为MyShop后续的微服务化和业务成长提供了基础。画外音v2.5版本应该是目前大多数团队所采用的一种认证架构了。对我司也是不过Token类型使用的是JWT。5小结本文通过一个MyShop的案例的演化介绍了微服务的安全认证架构是如何演进而来的但是v2.5版本TokenGateway方式总体上还是比较重每个请求都还是需要到AuthService上去做认证鉴权的操作这对于AuthService来说算是压力比较大。针对这个问题业界广泛采用JWT这种轻量级的解决方案来重构安全认证架构。那么问题来了JWT是什么原理实现方式下一期骚年快答为你解答这几个问题。往期骚年快答技术中台与业务中台有啥联系微服务架构中的BFF到底是个啥为何微服务项目都爱用单体仓库专注于开发技术与个人成长分享做对你有用的公众号????点个赞/在看如何

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/87442.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

类似交费网站开发增城建设网站

1. 什么是 DDoS 攻击?如何防范? 答:DDoS 攻击是指利用大量的计算机或者其他网络设备,同时向目标网络或者服务器 发送 大量的数据流量,以致其无法正常工作,从而导致网络瘫痪或者服务器宕机的攻击行 为。 …

网站全屏图片怎么做定安网站制作

文字狗最佳排版神器文字狗最佳排版神器 小恐龙公文排版助手Office WPS插件1.85最新版 无需注册、无需其他费用、无广告。相信大家所需要提交的各种论文、报告等Word文档都对格式有着非常严格的要求,对标题、目录、正文都有不同的要求。尤其是对于公文,要…

网站品牌栏目建设情况学校网站群建设必要

tolua中table.remove怎么删除表中符合条件的数据 介绍问题(错误方式删除数据)正确删除方案从后向前删除递归方式删除插入新表方式 拓展一下总结 介绍 在lua中删除表中符合条件的数据其实很简单,但是有一个顺序问题,因为lua的表中…

百度建站平台官网社交媒体平台

在使用Google的时候,查看某一相册,会经常看到,如下图所示的动画效果。 鼠标移入、移出时均有动画效果,咋一看估计是使用了css3的transform属性来实现动画效果的。 在网上搜索“Google 相册 效果”的时候发现有人使用CSS3做了这样的…

某班级网站建设方案论文网页设计素材在哪里找

参考&#xff1a;Blogs <% f.cktext_area :zh_content, ckeditor: { height: 1000} %>

网站开发+演讲vue制作WordPress主题

&#x1f57a;作者&#xff1a; 主页 我的专栏C语言从0到1探秘C数据结构从0到1探秘Linux &#x1f618;欢迎关注&#xff1a;&#x1f44d;点赞&#x1f64c;收藏✍️留言 &#x1f3c7;码字不易&#xff0c;你的&#x1f44d;点赞&#x1f64c;收藏❤️关注对我真的很重要&…

网站关键词指数查询工具自己怎么做网页链接

1 TCP/IP概述 1.1 TCP/IP的定义与起源 TCP/IP 协议&#xff0c;全称为 Transmission Control Protocol/Internet Protocol&#xff0c;中文名为传输控制协议/因特网互联协议&#xff0c;又名网络通讯协议。这是 Internet 最基本的协议&#xff0c;也是 Internet 国际互联网络…

wordpress企业建站模版适合迷茫年轻人的工作

real-time-emotion-detection 排坑记录 任务踩坑回顾CV2包版本问题症状描述解决方法 模型文件路径问题症状描述解决办法 tensorflow版本问题症状描述解决办法 其他 任务 我之前跑了一个CNN情绪识别的开源代码&#xff0c;现在我想尝试把他用到我的另一个项目里。但当时那个项目…

怎么在网站标头做图标手机做图片设计哪个软件好

c中的explicit关键字用来修饰类的构造函数&#xff0c;被修饰的类的构造函数不能进行隐式类型的转换&#xff0c;既然有"显式"那么必然就有"隐式"&#xff0c;那么什么是显示而什么又是隐式的呢&#xff1f; 如果c类的构造函数有一个参数&#xff0c;那么…

seo网站优化案例wordpress更改icon

文章目录 效果一览文章概述专栏介绍模型描述源码设计参考资料效果一览 文章概述 故障诊断模型 | Maltab实现LSTM长短期记忆神经网络故障诊断 专栏介绍 订阅【故障诊断】专栏,不定期更新机器学习和深度学习在故障诊断中的应用;订阅

有网页设计这个专业吗如何做优化排名

文章目录 Kubernetes入门学习&#xff08;上&#xff09;介绍云原生 Kubernetes架构基础概念Kubernetes架构控制平面组件Node组件 组件关系 安装Kubernetes基本对象和操作Pod&#xff08;容器集&#xff09;Deployment(部署)与ReplicaSet(副本集)Service&#xff08;服务&#…

毕业答辩ppt网站开发wordpress主题包下载

NodeJS 系列文章&#xff0c;本篇是第一篇&#xff0c;首先&#xff0c;预计将后续高频使用逻辑串一遍&#xff0c;依次是高阶函数&#xff0c;promise以及事件机制。本篇主要是高阶函数。call、bind、applycall、apply 都是改变 this 指向&#xff0c;区别是接受参数的方式不一…

潍坊网站做的好的公司电子鲜花php网站怎么做

在Facebook上进行广告运营需要一定的技巧和策略。以下是一些建议&#xff1a; 明确目标&#xff1a;在创建广告之前&#xff0c;你需要明确你的目标。这可能包括增加品牌知名度、提高网站流量、增加销售等等。明确目标后&#xff0c;你可以将广告与这些目标相结合&#xff0c;…

ios移动网站开发详解网站策划与设计

1、定义 字节顺序,又称端序或尾序(英语:Endianness),在计算机科学领域中,指电脑内存中或在数字通信链路中,组成多字节的字的字节的排列顺序。 在几乎所有的机器上,多字节对象都被存储为连续的字节序列。 2、表现形式 字节的排列方式有两个通用规则。例如,将一个多位数的…

宁夏建设网站的公司电话一家只做性价比的网站

文章目录 矩阵方程有解判定定理线性方程组有解判定特化:齐次线性方程组有解判定推广:矩阵方程 A X B AXB AXB有解判定证明推论 矩阵方程有解判定定理 线性方程组有解判定 线性方程组 A x b A\bold{x}\bold{b} Axb有解的充分必要条件是它的系数矩阵A和增广矩阵 ( A , b ) (A,…

东莞做网站哪家最好网站单页别人是怎么做的

构建机器学习模型时&#xff0c;人们往往将激情和精力集中于收集数据和训练模型&#xff0c;对测试模型和验证结果往往缺少应有的关注。正确的验证技术有助于估计无偏见的广义模型的性能&#xff0c;并更好地理解模型训练的效果。您需要确保机器学习模型经过准确的训练&#xf…

做网站怎么做连接点下一个页面网站开发中间商怎么做

mdadm是linux下用于创建和管理软件RAID的命令&#xff0c;是一个模式化命令。但由于现在服务器一般都带有RAID阵列卡&#xff0c;并且RAID阵列卡也很廉价&#xff0c;且由于软件RAID的自身缺陷(不能用作启动分区、使用CPU实现&#xff0c;降低CPU利用率)&#xff0c;因此在生产…

net快速建站如何跟进网站建设的客户

第十届“吴文俊人工智能科学技术奖”颁奖典礼现场来源&#xff1a; 深城物联 4月10日&#xff0c;我国智能科学技术最高奖“吴文俊人工智能科学技术奖”十周年颁奖盛典北京举办。军事科学院系统工程研究院研究员、中国工程院院士李德毅荣获“吴文俊人工智能最高成就奖”&#…

兰州网站建设哪里好互联网保险公司排行榜

ESP32之避障 图片 程序 int Led27;//定义LED 接口 int buttonpin4; //定义光遮断传感器接口 int val;//定义数字变量val void setup() { pinMode(Led,OUTPUT);//定义LED 为输出接口 pinMode(buttonpin,INPUT);//定义避障传感器为输出接口 } void loop() {Serial.begin(9600);…

网站开发 培训 周末班做的网站有广告

简介&#xff1a; 在巍峨的数据库大厦体系中&#xff0c;查询优化器和事务体系是两堵重要的承重墙&#xff0c;二者是如此重要以至于整个数据库体系结构设计中大量的数据结构、机制和特性都是围绕着二者搭建起来的。他们一个负责如何更快的查询到数据&#xff0c;更有效的组织起…