CN112600674A - 一种前后端分离系统的用户安全认证方法、装置及存储介质 - Google Patents
一种前后端分离系统的用户安全认证方法、装置及存储介质 Download PDFInfo
- Publication number
- CN112600674A CN112600674A CN202011409498.9A CN202011409498A CN112600674A CN 112600674 A CN112600674 A CN 112600674A CN 202011409498 A CN202011409498 A CN 202011409498A CN 112600674 A CN112600674 A CN 112600674A
- Authority
- CN
- China
- Prior art keywords
- jwt
- user
- server
- client
- correctness
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 22
- 238000000926 separation method Methods 0.000 title claims abstract description 18
- 230000004044 response Effects 0.000 claims abstract description 5
- 238000004590 computer program Methods 0.000 claims description 2
- 235000014510 cooky Nutrition 0.000 description 11
- 230000007246 mechanism Effects 0.000 description 4
- 238000004422 calculation algorithm Methods 0.000 description 3
- 238000011161 development Methods 0.000 description 3
- 238000013475 authorization Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000002347 injection Methods 0.000 description 2
- 239000007924 injection Substances 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 238000012795 verification Methods 0.000 description 2
- 239000008186 active pharmaceutical agent Substances 0.000 description 1
- 235000013405 beer Nutrition 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 239000000243 solution Substances 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/321—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving a third party or a trusted authority
- H04L9/3213—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving a third party or a trusted authority using tickets or tokens, e.g. Kerberos
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
- H04L63/0807—Network architectures or network communication protocols for network security for authentication of entities using tickets, e.g. Kerberos
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明提供了一种关于前后端分离系统的用户安全认证方法、装置及存储介质,其特征在于采用如下步骤实现用户认证:将用户登录信息发送给服务器;服务器验证正确性,如正确,则使用密钥创建该客户端对应的鉴权令牌JWT;服务器将鉴权令牌JWT返回给客户端;客户端接收到JW后,并存储,当用户需要访问一个受保护的资源时,需要在发给服务器的请求头中携带JWT信息,后再发送给服务器;先验证接收的JWT的签名,从JWT中获取客户的用户信息,并判断用户的正确性;服务器验证完用户的正确性后,如果正确则响应客户端的请求,并将响应发送给客户端。解决跨站点请求伪造CRSF的安全问题;提高了互联网应用接口调用的安全性,有效管控互联网项目风险。
Description
技术领域
本发明涉及计算机网络应用领域,更具体的说涉及一种前后端分离系统的用户安全认证方法、装置及存储介质。
背景技术
前后端分离一种架构上的概念。在传统的web架构中,比如经典模型视图控制器MVC(Model-View-Controller),会分数据层、逻辑层、视图层。在前后端分离的架构中,前端和后端是分开的,分别在不同的工程中。前端有专门的前端开发人员来进行开发、测试,后端则有后端开发人员来进行开发、测试,他们之间通过API来交互。由于HTTP协定是不储存状态的,所以为了保证系统安全,我们就需要验证用户否处于登录状态。Session-Cookie方式是我们开发web应用时最常用的认证方式。它一般按如下方式进行认证:图1是常规的认证系统框图:
1.用户浏览器向服务器发起认证请求,将用户名和密码发送给服务器。
2.服务器认证用户名和密码,若通过则创建一个session对话(session是另一种记录服务器和客户端会话状态的机制,是基于cookie实现的,session存储在服务器端,sessionId会被存储到客户端的cookie中。),并将用户信息保存到session中。session的信息可以是保存到服务器文件、共享外部存储、数据库等存储中,等下次请求时查询验证使用。
3.服务器会将该session的唯一标识ID,返回给用户浏览器,并保存在cookie(cookie是服务器发送到用户浏览器并保存在本地的一小块数据,它会在浏览器下次向同一服务器再发起请求时被携带并发送到服务器上。)中。
4.用户请求其他页面时,浏览器会自动将用户的cookie携带上,并发起接口请求,服务端收到请求后,从cookie解析出sessionID,根据这个sessionID查询登录后并保存好的session,若有则说明用户已登录,放行。
Session-Cookie方式认证所显露的问题:
可扩展性:Session-Cookie是有状态的服务,在服务端保存了session的信息。当服务端扩容的时候,需要考虑到session的共享问题。用户认证之后,服务端做认证记录,如果认证的记录被保存在内存中的话,这意味着用户下次请求还必须要请求在这台服务器上,这样才能拿到授权的资源,这样在分布式的应用上,相应的限制了负载均衡器的能力。这也意味着限制了应用的扩展能力。Session-Cookie方式基于Cookie,也就是必须是浏览器或支持Cookie的浏览器封装的框架,纯移动端无法使用。
安全性:Web开发中常见的两个安全问题XSS(跨站点脚本攻击)和CRSF(跨站点请求伪造)。前者利用注入脚本到用户认证网站上,执行恶意脚本代码。后者则利用浏览器访问后端自动携带cookie的机制,来跨站伪造请求。XSS只要我们对注入端,进行过滤、转义就能解决,CRSF是我们重点关注的。在Session-Cookie认证方式中,因为把SessionID保存在了Cookie中,很容易引起CRSF攻击。
性能:Session-Cookie方案,因为后端服务存储了Session信息,在认证的时候需要查询,当有大量认证的时候是非常耗费资源的。
发明内容
本发明所要解决的技术问题是如何提供提高用户安全认证的安全性,解决跨站点请求伪造SRSF的安全问题,同时提升其扩展性和性能。
为了解决以上问题本发明提供了一种关于前后端分离系统的用户安全认证方法,其特征在于采用如下步骤实现用户认证:
步骤1.1通过浏览器或APP的客户端接收用户输入的用户登录信息,将用户登录信息发送给服务器;
步骤1.2服务器接收用户登录信息,并验证正确性,如正确,则使用密钥创建该客户端对应的鉴权令牌JWT;
步骤1.3服务器将鉴权令牌JWT返回给浏览器或APP入口的客户端;
步骤1.4客户端接收到JW后,并存储,当用户需要访问一个受保护的资源时,需要在发给服务器的请求头中携带JWT信息,后再发送给服务器;
步骤1.5服务器接收到请求后,先验证接收的JWT的签名,从JWT中获取客户的用户信息,并判断用户的正确性;
步骤1.6服务器验证完用户的正确性后,如果正确则响应客户端的请求,并将响应发送给客户端。
所述的关于前后端分离系统的用户安全认证方法,其特征在于服务器对JWT进行加密后再将鉴权令牌JWT返回给浏览器或APP入口的客户端。
所述的关于前后端分离系统的用户安全认证方法,其特征在于JWT设置有过期时间,定时重新更新JWT,服务器和客户端都采用最新的JWT进行验证。
所述的关于前后端分离系统的用户安全认证方法,其特征在于在服务器中增加设置黑名单,将已经泄露的JWT和过期的JWT放置在黑名单中,当发现新接收到黑名单中的JWT则进行日志记录或输出警告信息。
一种关于前后端分离系统的用户安全认证的装置,其特征在于采用了所述的关于前后端分离系统的用户安全认证方法实现认证。
一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序当被处理器执行时使所述处理器执行所述的关于前后端分离系统的用户安全认证方法。
实施本发明具有如下有益效果:本发明提出一种关于前后端分离系统的用户安全认证方法;扩展性和性能上得到提升,解决跨站点请求伪造CRSF的安全问题;提高了互联网应用接口调用的安全性,有效管控互联网项目风险。
附图说明
图1是常规的认证系统框图;
图2是前后端分离系统的用户安全认证的流程图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图2是前后端分离系统的用户安全认证的流程图,通过如下步骤进行:
步骤1.1通过浏览器或APP的客户端接收用户输入的用户登录信息,将用户登录信息发送给服务器;一般包括用户名和密码信息,也可以包括其它信息。
步骤1.2服务器接收用户登录信息,并验证正确性,如正确,则使用密钥创建该客户端对应的鉴权令牌JWT,JWT(Json web token,是为了在网络应用环境间传递声明而执行的一种基于JSON的开放标准。);
步骤1.3服务器将鉴权令牌JWT返回给浏览器或APP入口的客户端;
步骤1.4客户端接收到JW后,并存储,web服务一般为本地存储,也可使用cookie。当用户需要访问一个受保护的资源时,需要在发给服务器的请求头Authorization字段中使用Bearer模式添加JWT信息,后再发送给服务器;
步骤1.5服务器接收到请求后,先验证接收的JWT的签名,从JWT中获取客户的用户信息,并判断用户的正确性;
步骤1.6服务器验证完用户的正确性后,如果正确则响应客户端的请求,并将响应发送给客户端。可选的,在使用JWT传输信息的时候,使用https,不要放置重要敏感信息。可选的,可以在编码前,对先内容进行加密。
可选的,将JWT的过期时间设置的很短,即使泄露也无关紧要。可选的,在服务端设计JWT的黑名单机制,将泄露的Token加黑名单即可。可选的,保存签发的JWT,当JWT泄露时,直接设置失效。
如上述所说,该方法具有以下益效果:扩展性上,JWT验证方式是无状态的服务,服务端可随意扩缩容。安全性上,可以把JWT存放在本地存储中,彻底避免了CRSF。只需要验证解码,使用签名验证token即可,相对来说效率会有提升。
以下实施案例说明本方法的基本流程。
在步骤1.1~1.3中,用户使用用户名和密码登录,将用户名和密码发送给服务器,服务器验证用户名和密码,若正确,则使用密钥创建JWT。并把JWT返回给浏览器。实际的JWT它是一个很长的字符串,中间用点(.)分隔成三个部分。JWT的三个部分依次为:Header(头部),Payload(负载),Signature(签名)。Header部分是一个JSON对象,描述JWT的元数据,将上面的JSON对象使用Base64URL算法转成字符串。Payload部分也是一个JSON对象,用来存放实际需要传递的数据,该JSON对象也要使用Base64URL算法转成字符串,可选的,可以在编码前,对先内容进行加密,防止编码被反编译保障数据安全。Signature部分是对前两部分的签名,防止数据篡改,首先,需要指定一个密钥(secret)。这个密钥只有服务器才知道,不能泄露给用户。然后,使用Header里面指定的签名算法,按照公式产生签名。算出签名以后,把Header、Payload、Signature三个部分拼成一个字符串,每个部分之间用"点"(.)分隔,就可以返回给用户。步骤四,当用户希望访问一个受保护的路由或者资源的时候,需要请求头的Authorization字段中使用Bearer模式添加JWT,发送给服务端。步骤五,服务器收到后,验证JWT签名,获取用户信息,判断用户的正确性。可选的,将JWT的过期时间设置的很短,即使泄露也无关紧要。可选的,在服务端设计JWT的黑名单机制,将泄露的Token加黑名单即可。可选的,保存签发的JWT,当JWT泄露时,直接设置失效。一定程度上解决JWT泄露问题。步骤六,把响应发送给客户端。
综上所述,上述实施例仅例示性说明本发明的原理及其功效,而非用于限制本发明。任何熟悉此技术的人士皆可在不违背本发明的精神及范畴下,对上述实施例进行修饰或改变。因此,举凡所属技术领域中具有通常知识者在未脱离本发明所揭示的精神与技术思想下所完成的一切等效修饰或改变,仍应由本发明的权利要求所涵盖。
Claims (6)
1.一种关于前后端分离系统的用户安全认证方法,其特征在于采用如下步骤实现用户认证:
步骤1.1通过浏览器或APP的客户端接收用户输入的用户登录信息,将用户登录信息发送给服务器;
步骤1.2服务器接收用户登录信息,并验证正确性,如正确,则使用密钥创建该客户端对应的鉴权令牌JWT;
步骤1.3服务器将鉴权令牌JWT返回给浏览器或APP入口的客户端;
步骤1.4客户端接收到JW后,并存储,当用户需要访问一个受保护的资源时,需要在发给服务器的请求头中携带JWT信息,后再发送给服务器;
步骤1.5服务器接收到请求后,先验证接收的JWT的签名,从JWT中获取客户的用户信息,并判断用户的正确性;
步骤1.6服务器验证完用户的正确性后,如果正确则响应客户端的请求,并将响应发送给客户端。
2.根据权利要求1所述的关于前后端分离系统的用户安全认证方法,其特征在于服务器对JWT进行加密后再将鉴权令牌JWT返回给浏览器或APP入口的客户端。
3.根据权利要求1所述的关于前后端分离系统的用户安全认证方法,其特征在于JWT设置有过期时间,定时重新更新JWT,服务器和客户端都采用最新的JWT进行验证。
4.根据权利要求1所述的关于前后端分离系统的用户安全认证方法,其特征在于在服务器中增加设置黑名单,将已经泄露的JWT和过期的JWT放置在黑名单中,当发现新接收到黑名单中的JWT则进行日志记录或输出警告信息。
5.一种关于前后端分离系统的用户安全认证的装置,其特征在于采用了如权利要求1至4任意一项所述的关于前后端分离系统的用户安全认证方法实现认证。
6.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序当被处理器执行时使所述处理器执行如权利要求1至4任一项所述的关于前后端分离系统的用户安全认证方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011409498.9A CN112600674A (zh) | 2020-12-04 | 2020-12-04 | 一种前后端分离系统的用户安全认证方法、装置及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011409498.9A CN112600674A (zh) | 2020-12-04 | 2020-12-04 | 一种前后端分离系统的用户安全认证方法、装置及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112600674A true CN112600674A (zh) | 2021-04-02 |
Family
ID=75189029
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011409498.9A Pending CN112600674A (zh) | 2020-12-04 | 2020-12-04 | 一种前后端分离系统的用户安全认证方法、装置及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112600674A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113572844A (zh) * | 2021-07-27 | 2021-10-29 | 中国电子技术标准化研究院 | 一种工业互联网标识解析方法 |
CN114124441A (zh) * | 2021-09-29 | 2022-03-01 | 上海欧冶金融信息服务股份有限公司 | 一种基于jwt的客户端认证方法及系统 |
CN115001808A (zh) * | 2022-05-31 | 2022-09-02 | 中国银行股份有限公司 | 一种域用户登录方法、装置、设备和介质 |
CN115296877A (zh) * | 2022-07-25 | 2022-11-04 | 紫光云技术有限公司 | 一种jwt存储令牌失效与续期的方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108965230A (zh) * | 2018-05-09 | 2018-12-07 | 深圳市中信网安认证有限公司 | 一种安全通信方法、系统及终端设备 |
CN109450865A (zh) * | 2018-10-18 | 2019-03-08 | 弘成科技发展有限公司 | 基于jwt验证的api用户认证方法 |
CN111371805A (zh) * | 2020-03-17 | 2020-07-03 | 北京工业大学 | 基于Token的统一身份认证接口及方法 |
-
2020
- 2020-12-04 CN CN202011409498.9A patent/CN112600674A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108965230A (zh) * | 2018-05-09 | 2018-12-07 | 深圳市中信网安认证有限公司 | 一种安全通信方法、系统及终端设备 |
CN109450865A (zh) * | 2018-10-18 | 2019-03-08 | 弘成科技发展有限公司 | 基于jwt验证的api用户认证方法 |
CN111371805A (zh) * | 2020-03-17 | 2020-07-03 | 北京工业大学 | 基于Token的统一身份认证接口及方法 |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113572844A (zh) * | 2021-07-27 | 2021-10-29 | 中国电子技术标准化研究院 | 一种工业互联网标识解析方法 |
CN114124441A (zh) * | 2021-09-29 | 2022-03-01 | 上海欧冶金融信息服务股份有限公司 | 一种基于jwt的客户端认证方法及系统 |
CN114124441B (zh) * | 2021-09-29 | 2022-11-15 | 上海欧冶金融信息服务股份有限公司 | 一种基于jwt的客户端认证方法及系统 |
CN115001808A (zh) * | 2022-05-31 | 2022-09-02 | 中国银行股份有限公司 | 一种域用户登录方法、装置、设备和介质 |
CN115001808B (zh) * | 2022-05-31 | 2024-05-28 | 中国银行股份有限公司 | 一种域用户登录方法、装置、设备和介质 |
CN115296877A (zh) * | 2022-07-25 | 2022-11-04 | 紫光云技术有限公司 | 一种jwt存储令牌失效与续期的方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109815656A (zh) | 登录认证方法、装置、设备及计算机可读存储介质 | |
WO2016188290A1 (zh) | Api调用的安全认证方法、装置、系统 | |
CN112600674A (zh) | 一种前后端分离系统的用户安全认证方法、装置及存储介质 | |
US20150188779A1 (en) | Split-application infrastructure | |
KR101560440B1 (ko) | 안전한 동적 권한 위임을 위한 방법 및 장치 | |
US8819787B2 (en) | Securing asynchronous client server transactions | |
CN103179134A (zh) | 基于Cookie的单点登录方法、系统及其应用服务器 | |
CN101090319B (zh) | 控制装置、通信系统及存储有控制程序的计算机可读介质 | |
CN106576041A (zh) | 客户端与服务器之间相互验证的方法 | |
US20160381001A1 (en) | Method and apparatus for identity authentication between systems | |
CN108322416B (zh) | 一种安全认证实现方法、装置及系统 | |
CN103944900A (zh) | 一种基于加密的跨站请求攻击防范方法及其装置 | |
US20160241536A1 (en) | System and methods for user authentication across multiple domains | |
CN105554098A (zh) | 一种设备配置方法、服务器及系统 | |
CN103685204A (zh) | 基于物联网资源共享平台的资源鉴权方法 | |
CN111371725A (zh) | 一种提升会话机制安全性的方法、终端设备和存储介质 | |
CN105430014A (zh) | 一种单点登录方法及其系统 | |
CN109150800A (zh) | 一种登录访问方法、系统和存储介质 | |
CN110166471A (zh) | 一种Portal认证方法及装置 | |
CN108462671A (zh) | 一种基于反向代理的认证保护方法及系统 | |
CN109495458A (zh) | 一种数据传输的方法、系统及相关组件 | |
CN104243488A (zh) | 一种跨网站服务器的登录认证方法 | |
Wang et al. | A framework for formal analysis of privacy on SSO protocols | |
US11595215B1 (en) | Transparently using macaroons with caveats to delegate authorization for access | |
US11595389B1 (en) | Secure deployment confirmation of IOT devices via bearer tokens with caveats |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20210402 |