CN110768974A - 一种单页应用实时视图权限的控制方法 - Google Patents

一种单页应用实时视图权限的控制方法 Download PDF

Info

Publication number
CN110768974A
CN110768974A CN201910999160.4A CN201910999160A CN110768974A CN 110768974 A CN110768974 A CN 110768974A CN 201910999160 A CN201910999160 A CN 201910999160A CN 110768974 A CN110768974 A CN 110768974A
Authority
CN
China
Prior art keywords
authority
value
client
server
permission
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.)
Granted
Application number
CN201910999160.4A
Other languages
English (en)
Other versions
CN110768974B (zh
Inventor
杨泽丰
范渊
吴永越
郑学新
刘韬
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Chengdu DBAPPSecurity Co Ltd
Original Assignee
Chengdu DBAPPSecurity Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Chengdu DBAPPSecurity Co Ltd filed Critical Chengdu DBAPPSecurity Co Ltd
Priority to CN201910999160.4A priority Critical patent/CN110768974B/zh
Publication of CN110768974A publication Critical patent/CN110768974A/zh
Application granted granted Critical
Publication of CN110768974B publication Critical patent/CN110768974B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0876Network architectures or network communication protocols for network security for authentication of entities based on the identity of the terminal or configuration, e.g. MAC address, hardware or software configuration or device fingerprint
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/16Implementing security features at a particular protocol layer
    • H04L63/168Implementing security features at a particular protocol layer above the transport layer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic 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/3236Cryptographic 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 using cryptographic hash functions
    • H04L9/3239Cryptographic 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 using cryptographic hash functions involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Power Engineering (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Storage Device Security (AREA)

Abstract

本发明公开了一种单页应用实时视图权限的控制方法,涉及单页应用视图权限控制技术领域,包括服务器获取客户端请求,在返回的HTTP协议头部设置自定义头部,并返回到客户端;客户端将客户端返回的自定义头部的返回值与本地存储的存储值进行对比,判断是否一致;二者不一致则客户端请求获取当前用户的所有权限的接口,并更新权限和视图;二者一致,则无需请求获取当前用户的所有权限的接口,不更新权限和视图;本发明根据服务器返回的HTTP协议自定义头部的值与之前存储的权限列表的数据进行对比,确定是否需要更新权限和视图,单页应用中管理员对用户的权限修改之后,客户端的视图能够在下一次请求的时候实时更新,不需要退出重新登录。

Description

一种单页应用实时视图权限的控制方法
技术领域
本发明涉及单页应用视图权限控制技术领域,具体涉及一种单页应用实时视图权限的控制方法。
背景技术
单页应用(single-page application,缩写SPA)是一种网络应用程序或网站的模型,它通过动态重写当前页面来与用户交互,而非传统的从服务器重新加载整个新页面。这种方法避免了页面之间切换打断用户体验,使应用程序更像一个桌面应用程序。在单页应用中,所有必要的代码(HTML、JavaScript和CSS)都通过单个页面的加载而检索[1],或者根据需要(通常是为响应用户操作)动态装载适当的资源并添加到页面。尽管可以用位置散列或HTML5历史API来提供应用程序中单独逻辑页面的感知和导航能力,但页面在过程中的任何时间点都不会重新加载,也不会将控制转移到其他页面。[2]与单页应用的交互通常涉及到与网页服务器后端的动态通信。
HTTP头字段(HTTP header fields)是指在超文本传输协议(HTTP)的请求和响应消息中的消息头部分。它们定义了一个超文本传输协议事务中的操作参数。HTTP头部字段可以自己根据需要定义,因此可能在 Web 服务器和浏览器上发现非标准的头字段。
现有对网页视图的权限控制,在由服务器生成非单页应用的网页系统中,每个网页都由服务器生成,服务器在生成的时候可根据当前用户的权限实时渲染出当前用户的视图。而在单页应用中,当浏览器首次请求服务器时,服务器就会返回所有HTML、CSS和JavaScript脚本文件,由JavaScript控制页面的展示。之后服务器接口只负责数据的传输无法控制视图的权限。现有的对于这种单页应用的权限控制方法,一种是不控制视图,直接由服务器接口限制,在由客户端页面发起HTTP请求后才能确定是否具有某个功能的权限,这种方法系统无法第一时间拦截用户权限,增加了服务器消耗。另一种是在浏览器首次请求服务器时,返回用户的权限列表,然后根据权限渲染出当前用户的视图,这种方法当当前登录用户的权限发生改变时,网页无法实时更新。也只能由服务器接口控制进行拦截,只有在用户重新登录后,网页才会重新渲染。
现有单页应用在检查用户权限的时候,是通过调用权限接口来实现,一种是周期触发,通过轮询调用权限列表接口;另一种事件触发,通过调用其他接口的同时调用权限列表接口。这两种方式都会增加服务器开销,降低服务器性能。
发明内容
本发明针对现有技术,提供了一种单页应用实时视图权限的控制方法,在当前登录用户的权限发生更改时,下一次请求时即可更新视图,从网页上及时限制用户的使用。
本发明通过下述技术方案实现:所述一种单页应用实时视图权限的控制方法,根据客户端的请求,服务器获取客户端请求,在服务器返回的HTTP协议头部设置自定义头部,并返回到客户端;客户端将服务端返回的自定义头部的返回值与本地存储的存储值进行对比,判断是否一致;二者不一致则客户端请求获取当前用户的所有权限的接口,并更新权限和视图;二者一致,则无需请求获取当前用户的所有权限的接口,不更新权限和视图。
上述技术方案在当前用户再次请求服务器时,根据服务器的返回值与原存储值是否一致,判断是否需要更新权限和视图,并将服务器的返回值覆盖原存储值,实现存储值的更新。
对于很多使用单页应用的Web应用程序来说,权限控制完全由数据驱动,客户端在用户登录后一次性请求当前用户所有的权限,然后决定哪些视图可以展示,但当管理员修改用户权限后,当前用户的的视图无法实时更新,需要退出登录后从新登录获取所有权限更新视图,无法第一时间限制用户的使用,需要在后端接口限制。而采取本技术方案可以在当前登录用户的权限发生更改时,下一次请求即可更新视图,从网页上及时限制用户的使用。
进一步地,设置有自定义头部的HTTP协议通过服务器的API返回客户端。
进一步地,所述本地存储的存储值为当前用户前一次登录时,服务器根据客户端的请求返回的权限列表的数据;客户端根据权限列表渲染相关页面;并将服务器返回的权限列表的数据存储在本地存储中。
进一步地,所述自定义头部的返回值为当前用户的所有权限的值,当前用户的所有权限的值在创建用户权限时生成,生成当前用户权限列表的值的算法为MD5或SHA-256算法,并存储在键值对缓存中。
在当前用户首次登陆客户端时,创建用户权限时,生成当前用户的权限列表和权限列表的值,并存储在网页的本地存储中。在之后的当前用户登陆客户端时,所述权限列表和权限列表的值根据客户端请求返回。
进一步地,所述权限列表的数据的存储值的键值对,键为:$id.permission,其中$id为当前用户的ID,$id是个变量,替换为真正用户的ID;值为权限列表的hash值。
进一步地,所述本地存储的存储值和自定义头部的返回值均为hash值。
所述服务器收到客户端的请求后,先处理客户端的业务请求,在业务请求处理完成后,再判断当前请求中是否包含需要返回权限列表的数据的请求,若包含则判断该请求的值,其值满足条件后,再在向客户端返回的HTTP协议中设置自定义头部,将自定义头部的键值与之前存储的存储值进行对比。
进一步地,当客户端向服务器发送的请求包含X-Permission-Check 的HTTP头部,且服务器判断X-Permission-Check的值为true时,所述服务器返回设置有自定义头部的HTTP协议。
若客户端向服务器发送的请求中不包含X-Permission-Check 的HTTP头部,或者包含了X-Permission-Check 的HTTP头部但判断X-Permission-Check的值不为true时,服务器在返回HTTP协议中,均不设置自定义头部,也就无需与客户端存储的存储值进行对比,更新当前用户的权限。
所述客户端发送至服务器的HTTP协议是否包含X-Permission-Check,可通过以下方法设置:当当前用户进行请求服务器的API时,根据下一次请求是否需要检查当前用户权限来决定是否在发送的HTTP协议头部设置X-Permission-Check,若需要检查当前用户权限,则在客户端发送给服务器的HTTP协议头部设置X-Permission-Check,并定义其值为true;若不需要检查当前用户权限,则不需要在发送的HTTP协议头部设置X-Permission-Check或者将其值不定义为true。
进一步地,所述本地存储的存储值的键值对,键为:$id.permission。
进一步地,更新用户权限时,根据键值$id.permission,取出当前用户的权限,同时更新用户所有权限的hash值。
进一步地,所述用户的所有权限通过服务器在内存或键值数据库中维护。
本发明与现有技术相比,具有以下优点及有益效果:
(1)本发明所提供的一种单页应用实时视图权限的控制方法,根据服务器返回的HTTP协议自定义头部的值与之前存储的权限列表的数据进行对比,确定是否需要更新权限和视图,单页应用中管理员对用户的权限修改之后,客户端的视图能够在下一次请求的时候实时更新,不需要退出重新登录。
(2)本发明所提供的一种单页应用实时视图权限的控制方法,通过客户端的请求,自行决定是否携带自定义的HTTP头部,进行权限校验,客户端不需要轮询请求服务器,可自行控制每次请求是否校验权限,灵活控制。
附图说明
图1为本发明权限实时更新的流程图;
图2为本发明的服务器返回hash值的流程图;
图3为本发明的服务器维护用户的所有权限的hash值的流程图。
具体实施方式
下面结合实施例对本发明作进一步地详细说明,但本发明的实施方式不限于此。
如图1~3所示,一种单页应用实时视图权限的控制方法,根据客户端的请求,服务器获取客户端请求,在服务器返回的HTTP协议头部设置自定义头部,并返回到客户端;客户端将服务端返回的自定义头部的返回值与本地存储的存储值进行对比,判断是否一致;二者不一致则客户端请求获取当前用户的所有权限的接口,并更新权限和视图;二者一致,则无需请求获取当前用户的所有权限的接口,不更新权限和视图。
所述本地存储的存储值为当前用户前一次登录时,服务器根据客户端的请求返回的权限列表的数据;客户端根据权限列表渲染相关页面;并将服务器返回的权限列表的数据存储在本地存储中。
所述自定义头部的返回值为当前用户的所有权限的值,当前用户的所有权限的值在创建用户权限时生成,生成当前用户权限列表的值的算法为MD5或SHA-256算法,并存储在键值对缓存中。
在当前用户首次登陆客户端时,创建用户权限时,生成当前用户的权限列表和权限列表的值,并存储在网页的本地存储中。在之后的当前用户登陆客户端时,所述权限列表和权限列表的值根据客户端请求返回
其具体实施之一如下:
当前用户在首次登陆网页时,创建用户权限时,生成该用户所有权限的hash值,其生成hash值的算法可以是MD5或SHA-256算法。将生成的当前用户的所有权限存储到键值对缓存中,缓存的键值为:$id.permission。其中$id为当前用户的ID,值为权限列表的hash值。
当前用户在之后的使用中,从客户端登录之后请求服务器返回当前用户的权限列表和权限列表的hash值,客户端Javascript根据权限列表渲染相关页面,即当前用户的所有权限要控制的页面,如显示某个菜单、某个添加操作的按钮;并将返回的权利列表的hash值存储到网页的本地存储中,键值为Permission,Permission的值为当前用户的权限列表的hash值。
当该用户进行下一步操作请求服务器的API时,根据下一次请求是否需要检查当前用户权限来决定是否在发送的HTTP协议头部设置X-Permission-Check,若需要检查当前用户权限,则在客户端发送给服务器的HTTP协议头部设置X-Permission-Check,并定义其值为true;若不需要检查当前用户权限,则不需要在发送的HTTP协议头部设置X-Permission-Check或者将其值不定义为true。
服务器收到客户端收到请求时,在处理完业务请求后,判断当前请求的HTTP协议的头部中是否包含X-Permission-Check,并判断X-Permission-Check其值是否为true。若当前请求的HTTP协议的头部包含X-Permission-Check且其值为true,则在服务器返回客户端的HTTP协议中设置自定义头部,其返回的自定义头部的键值为X-Permission值,其值为之前缓存的当前用户的所有权限的hash值。
客户端在处理本次请求的响应之前,将服务器返回的HTTP协议的自定义头部的值与存储在本地存储的值对比,判断是否一致,若不一致,请求获取当前用户的所有权限的接口,并更新权限和视图。
更新当前用户的权限时,根据键值:$id.permission,取出当前用户的权限,同时更新用户所有权限的hash值。服务器维护用户所有权限hash值,可在内存中维护,也可以使用键值数据库,比如Redis。
以上所述,仅是本发明的较佳实施例,并非对本发明做任何形式上的限制,凡是依据本发明的技术实质对以上实施例所作的任何简单修改、等同变化,均落入本发明的保护范围之内。

Claims (10)

1.一种单页应用实时视图权限的控制方法,其特征在于:
服务器获取客户端请求,在服务器返回的HTTP协议头部设置自定义头部,并返回到客户端;
客户端将服务端返回的自定义头部的返回值与本地存储的存储值进行对比,判断是否一致;二者不一致则客户端请求获取当前用户的所有权限的接口,并更新权限和视图;二者一致,则无需请求获取当前用户的所有权限的接口,不更新权限和视图。
2.根据权利要求1所述的一种单页应用实时视图权限的控制方法,其特征在于:所述本地存储的存储值和自定义头部的返回值均为hash值。
3.根据权利要求2所述的一种单页应用实时视图权限的控制方法,其特征在于:所述本地存储的存储值为当前用户前一次登录时,服务器根据客户端的请求返回的权限列表的数据;客户端根据权限列表渲染相关页面;并将服务器返回的权限列表的数据存储在本地存储中。
4.根据权利要求2所述的一种单页应用实时视图权限的控制方法,其特征在于:所述自定义头部的返回值为当前用户的所有权限的值,当前用户的所有权限的值在创建用户权限时生成,生成当前用户权限列表的值的算法为MD5或SHA-256算法,并存储在键值对缓存中。
5.根据权利要求4所述的一种单页应用实时视图权限的控制方法,其特征在于:所述权限列表的数据的存储值的键为:$id.permission,其中$id为用户的ID,值为权限列表的hash值。
6.根据权利要求5所述的一种单页应用实时视图权限的控制方法,其特征在于:更新用户权限时,根据键值$id.permission,取出当前用户的权限,同时更新用户所有权限的hash值。
7.根据权利要求2所述的一种单页应用实时视图权限的控制方法,其特征在于:当客户端向服务器发送的请求包含X-Permission-Check 的HTTP头部,且服务器判断X-Permission-Check的值为true时,所述服务器返回设置有自定义头部的HTTP协议。
8.根据权利要求7所述的一种单页应用实时视图权限的控制方法,其特征在于:所述客户端向服务器发送的请求是否包含X-Permission-Check 的HTTP头部,根据当前用户进行请求服务器的API时,下一次请求是否需要检查当前用户权限来决定。
9.根据权利要求1~8任一项所述的一种单页应用实时视图权限的控制方法,其特征在于:所述用户的所有权限通过服务器在内存或键值数据库中维护。
10.根据权利要求1~8任一项所述的一种单页应用实时视图权限的控制方法,其特征在于:设置有自定义头部的HTTP协议通过服务器的API返回客户端。
CN201910999160.4A 2019-10-21 2019-10-21 一种单页应用实时视图权限的控制方法 Active CN110768974B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910999160.4A CN110768974B (zh) 2019-10-21 2019-10-21 一种单页应用实时视图权限的控制方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910999160.4A CN110768974B (zh) 2019-10-21 2019-10-21 一种单页应用实时视图权限的控制方法

Publications (2)

Publication Number Publication Date
CN110768974A true CN110768974A (zh) 2020-02-07
CN110768974B CN110768974B (zh) 2022-02-08

Family

ID=69332794

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910999160.4A Active CN110768974B (zh) 2019-10-21 2019-10-21 一种单页应用实时视图权限的控制方法

Country Status (1)

Country Link
CN (1) CN110768974B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112165449A (zh) * 2020-08-21 2021-01-01 杭州安恒信息技术股份有限公司 web应用实时权限的控制方法、电子装置和存储介质
CN112347442A (zh) * 2020-11-30 2021-02-09 四川长虹电器股份有限公司 用户权限的验证方法及装置

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108491206A (zh) * 2018-04-12 2018-09-04 江南大学 一种spa单页面实现方法及系统
CN109246089A (zh) * 2018-08-20 2019-01-18 北京交通大学 一种基于角色的前后端分离架构访问控制系统及方法
CN109669597A (zh) * 2018-10-31 2019-04-23 武汉艺果互动科技股份有限公司 用户浏览网站时的前端权限控制方法、设备及存储设备
CN109740379A (zh) * 2019-01-03 2019-05-10 山东浪潮通软信息科技有限公司 一种前端权限控制方法
CN110119294A (zh) * 2019-04-04 2019-08-13 口碑(上海)信息技术有限公司 菜单页面的生成方法、装置及系统

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108491206A (zh) * 2018-04-12 2018-09-04 江南大学 一种spa单页面实现方法及系统
CN109246089A (zh) * 2018-08-20 2019-01-18 北京交通大学 一种基于角色的前后端分离架构访问控制系统及方法
CN109669597A (zh) * 2018-10-31 2019-04-23 武汉艺果互动科技股份有限公司 用户浏览网站时的前端权限控制方法、设备及存储设备
CN109740379A (zh) * 2019-01-03 2019-05-10 山东浪潮通软信息科技有限公司 一种前端权限控制方法
CN110119294A (zh) * 2019-04-04 2019-08-13 口碑(上海)信息技术有限公司 菜单页面的生成方法、装置及系统

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112165449A (zh) * 2020-08-21 2021-01-01 杭州安恒信息技术股份有限公司 web应用实时权限的控制方法、电子装置和存储介质
CN112165449B (zh) * 2020-08-21 2022-06-14 杭州安恒信息技术股份有限公司 web应用实时权限的控制方法、电子装置和存储介质
CN112347442A (zh) * 2020-11-30 2021-02-09 四川长虹电器股份有限公司 用户权限的验证方法及装置
CN112347442B (zh) * 2020-11-30 2023-03-21 四川长虹电器股份有限公司 用户权限的验证方法及装置

Also Published As

Publication number Publication date
CN110768974B (zh) 2022-02-08

Similar Documents

Publication Publication Date Title
US10931731B2 (en) Adaptive learning periods in HTML streaming
CN112073405B (zh) 网页数据加载方法、装置、计算机设备及存储介质
CN105824909B (zh) 页面生成方法和装置
US8612993B2 (en) Identity persistence via executable scripts
KR102161667B1 (ko) 호스팅된 문서 서비스에서 오프라인 액세스를 제공하기 위한 시스템 및 방법
US9231949B1 (en) Content delivery to user devices using server-initiated connections
US10909104B2 (en) Caching of updated network content portions
WO2002005126A2 (en) Dynamic web page caching system and method
CN104468807A (zh) 进行网页缓存的处理方法、云端装置、本地装置及系统
CN114598748B (zh) 缓存资源的刷新方法、装置及系统
CN108920703B (zh) 一种http缓存优化方法与装置
CN110768974B (zh) 一种单页应用实时视图权限的控制方法
CN105743945A (zh) 基于切换下载源的文件下载方法及系统
EP3148165B1 (en) Controlling access to network resources
KR20060080180A (ko) 데이터 애셋들을 캐싱하는 방법
EP2760183A1 (en) System for detecting hyperlink faults
WO2016112354A2 (en) Html streaming
CN115640471A (zh) 短链接生成方法、装置、计算机设备及存储介质
KR101490516B1 (ko) 객체 및 속성 정보를 이용한 컨텐츠 제공 방법 및 이를 이용한 http 프록시 서버
EP3772697A1 (en) Cryptographically secure dynamic third party resources
CN104767808A (zh) 一种基于支持ajax的web代理方法
WO2003083612A2 (en) System and method for optimizing internet applications
CN112003848B (zh) 一种同一浏览器多账号登录的方法和设备
WO2018112685A1 (zh) 一种高并发超文本传输协议请求的处理方法、装置及系统
CN117520629A (zh) 一种基于服务器端渲染网页技术的seo方案及相关装置

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
GR01 Patent grant
GR01 Patent grant