CN111031111A - 一种页面静态资源访问方法、装置及*** - Google Patents
一种页面静态资源访问方法、装置及*** Download PDFInfo
- Publication number
- CN111031111A CN111031111A CN201911205494.6A CN201911205494A CN111031111A CN 111031111 A CN111031111 A CN 111031111A CN 201911205494 A CN201911205494 A CN 201911205494A CN 111031111 A CN111031111 A CN 111031111A
- Authority
- CN
- China
- Prior art keywords
- static resource
- client
- routing table
- static
- request
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/38—Creation or generation of source code for implementing user interfaces
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/71—Version control; Configuration management
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/74—Address processing for routing
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Human Computer Interaction (AREA)
- Information Transfer Between Computers (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请实施例公开了一种页面静态资源访问方法、装置及***。其中方法包括:接收客户端发送的针对目标页面的静态资源访问请求并根据静态资源访问请求返回目标页面对应的第一静态资源至客户端;接收客户端响应获取到第一静态资源发送的路由表请求并根据路由表请求在数据库中匹配到客户端关联用户对应的目标页面的第二静态资源的路由表后发送至客户端;接收客户端发送的针对第二静态资源的路由请求,并根据数据库中的权限信息对路由请求进行判断;若判断结果为具有权限时,发送第二静态资源至客户端;若判断结果为不具有返回权限时,发送访问失败信息至客户端。通过本申请提高了页面静态资源访问的安全性。
Description
技术领域
本申请涉及页面开发访问领域,特别是涉及页面静态资源访问方法、装置及***。
背景技术
web开发经过了前后端不分离到前后端分离的技术演进。不论是哪种技术,都要求对其中的资源如静态资源进行安全控制,以防止攻击者获得不具有查看权限的信息。在没有做前后端分离的技术中,几乎所有资源数据都发布在后端服务器上,从而可以直接通过后端服务器进行有力的权限控制。
而在前后端分离技术中,后端仅返回前端所需的动态数据,不再渲染HTML页面,不再控制前端的效果。至于前端用户看到什么效果,从后端请求的数据如何加载到前端中,都由前端代码自己决定,后端仅需开发一套逻辑对外如网页或APP提供数据即可。对应的数据交互如图1所示。
在这种情况下,现有技术提供了几种前端权限控制方式:
一、通过ajax调用后端接口获取权限信息,根据权限信息来判断哪些页面允许用户访问,哪些内容或信息可以展示给用户阅读查看,哪些功能可以提供用户进行操作,然后相对应的进行隐藏。
二、通过ajax调用后端接口获取权限信息,根据权限信息来判断哪些页面允许用户访问,哪些内容或信息可以展示给用户阅读查看,哪些功能可以提供用户进行操作,然后相对应的进行隐藏。增加路由守卫功能,再结合通过接口获取到的权限信息,来控制前端路由的跳转限制用户页面访问。
三、通过ajax调用后端接口获取权限信息,根据权限信息动态的添加路由来限制用户访问页面,根据权限信息来判断哪些内容或信息可以展示给用户阅读查看,哪些功能可以提供用户进行操作,然后相对应的进行隐藏。
第一种方法,是安全性最差的,尤其是页面访问,虽然入口进行了隐藏,但是攻击者在知道页面地址的情况下可以直接进行页面访问。第二种方法是对第一种方法进行了优化处理,用户虽然直接访问会被代码控制跳转出来,但是用户依然在短时间内可以访问到没有权限进行查看的页面,虽然时间非常短,但是如果用户是一名攻击者,在具备一定技术知识的条件下,可以在页面跳转前将跳转操作抹去或将页面进行卡顿。第三种方法,做到了更好的优化处理,但是依然存在安全隐患,只是增加了攻击者的攻击成本,而攻击者依然可以通过阅读静态资源文件,js文件,进行阅读源码获取相关业务信息,攻击者技术知识足够充分下,可以破解出前端路由表重新编写一份本地js文件,利用fiddler等工具可以把资源文件替换成自己写的本地js文件,就可以进行无差别的页面访问。
可见目前对于位于前端的静态资源的控制无法起到真正意义上安全控制。静态资源文件,尤其是js文件,即便前端代码做了权限控制进行了隐藏业务,但是攻击者可以轻而易举的在客户端进行查看源码从而获取相关有用信息,如果这些信息本身就静态信息也是机密的话,将是一种不可忽略的安全风险。
因此目前急需一种在前后端分离背景下,可以提高安全性的页面静态资源访问方法。
发明内容
本申请提供了一种页面静态资源访问方法、装置及***,以解决现有技术中前后端分离背景下静态资源访问安全性低的问题。
本申请提供了如下方案:
第一方面公开了一种页面静态资源访问方法,所述方法包括:
根据客户端发送的针对目标页面的静态资源访问请求返回所述目标页面对应的第一静态资源至所述客户端;
接收客户端响应所述第一静态资源发送的第二静态资源路由表请求并根据所述路由表请求在数据库中匹配到所述客户端关联用户对应的第二静态资源的路由表后发送至所述客户端;所述数据库中预存有第二静态资源、用户、路由表之间的映射关系;
接收所述客户端发送的针对所述第二静态资源的路由请求,并根据所述数据库预存的所述映射关系判断所述客户端关联用户是否对应有所述第二静态资源的路由表;
若判断结果为有时,发送所述第二静态资源至所述客户端;
若判断结果为没有时,发送访问失败信息至所述客户端。
优选的,所述数据库中存储有用户、静态资源文件名、路由表之间的映射关系;
所述根据所述路由表请求在数据库中匹配到所述客户端关联用户对应的第二静态资源的路由表后发送至所述客户端包括:
根据所述路由表请求中的所述第二静态资源的文件名匹配到所述客户端关联用户对应的第二静态资源的路由表后发送至所述客户端。
优选的,
所述第二静态资源的文件名通过webpack唯一生成;
和/或;
所述数据库中存储有通过vue-router的接口动态写入的路由表。
优选的,所述根据所述数据库预存的所述映射关系判断所述客户端关联用户是否对应有所述第二静态资源的路由表包括:
通过lua脚本从所述数据库中获取所述第二静态资源对应的所有路由表并判断所有路由表中是否有所述关联用户对应的路由表;
或;
通过lua脚本从所述数据库中获取所述关联用户对应的所有路由表并判断所有路由表中是否有所述第二静态资源对应的路由表。
第二方面还公开一种页面静态资源访问方法,应用在客户端,所述方法包括:
发送针对目标页面的静态资源访问请求至静态资源服务器并接收所述静态资源服务器返回的所述目标页面对应的第一静态资源;
响应获取到所述第一静态资源发送针对所述目标页面对应的第二静态资源路由表请求至静态资源服务器并接收所述静态资源服务器根据所述路由表请求在数据库中匹配到的所述客户端关联用户对应的第二静态资源的路由表;所述数据库中预存有第二静态资源、用户、路由表之间的映射关系;
发送针对所述第二静态资源的路由请求至所述静态资源服务器,以便所述静态资源服务器根据所述数据库预存的所述映射关系判断所述客户端关联用户是否对应有所述第二静态资源的路由表;
在所述判断结果为有时,接收所述静态资源服务器返回的第二静态资源;
在所述判断结果为没有时,接收所述静态资源服务器返回的访问失败信息。
第三方面还公开一种页面静态资源访问装置,应用在静态资源服务器端,所述装置包括:
目标页面访问请求接收单元,用于接收客户端发送的针对目标页面的静态资源访问请求;
第一静态资源发送单元,用于根据所述静态资源访问请求返回所述目标页面对应的第一静态资源至所述客户端;
路由表请求接收单元,用于接收客户端响应获取到所述第一静态资源发送的路由表请求;
路由表发送单元,用于根据所述路由表请求在数据库中匹配到所述客户端关联用户对应的第二静态资源的路由表后发送至所述客户端;所述数据库中预存有第二静态资源、用户、路由表之间的映射关系;
第二静态资源路由请求接收单元,接收所述客户端发送的针对所述第二静态资源的路由请求;
权限判断单元,用于根据所述数据库预存的所述映射关系判断所述客户端关联用户是否对应有所述第二静态资源的路由表;
结果返回单元,用于在判断结果为有时,发送所述第二静态资源至所述客户端,在判断结果为没有时,发送访问失败信息至所述客户端。
优选的,所述数据库中存储有用户、静态资源文件名、路由表之间的映射关系;
路由表发送单元,具体用于根据所述路由表请求中的所述第二静态资源的文件名匹配到所述客户端关联用户对应的所述第二静态资源的路由表后发送至所述客户端。
优选的,
所述第二静态资源的文件名通过webpack唯一生成;
和/或;
所述路由表是通过vue-router的接口动态写入所述数据库。
第四方面还公开一种页面静态资源访问装置,应用在客户端,所述装置包括:
目标页面访问请求发送单元,用于发送针对目标页面的静态资源访问请求至静态资源服务器;
第一静态资源接收单元,用于接收所述静态资源服务器返回的所述目标页面对应的第一静态资源;
路由表请求发送单元,用于响应获取到所述第一静态资源发送针对所述目标页面对应的第二静态资源路由表请求至静态资源服务器;
路由表接收单元,用于接收所述静态资源服务器根据所述路由表请求在数据库中匹配到的所述客户端关联用户对应的第二静态资源的路由表;所述数据库中预存有第二静态资源、用户、路由表之间的映射关系;
第二静态资源路由请求发送单元,用于发送针对所述第二静态资源的路由请求至所述静态资源服务器,以便所述静态资源服务器根据所述数据库预存的所述映射关系判断所述客户端关联用户是否对应有所述第二静态资源的路由表;
结果接收单元,用于在所述判断结果为有时,接收所述静态资源服务器返回的第二静态资源,并用于在所述判断结果为没有时,接收所述静态资源服务器返回的访问失败信息。
第五方面公开一种计算机***,包括:
一个或多个处理器;以及
与所述一个或多个处理器关联的存储器,所述存储器用于存储程序指令,所述程序指令在被所述一个或多个处理器读取执行时,执行如下操作:
根据客户端发送的针对目标页面的静态资源访问请求返回所述目标页面对应的第一静态资源至所述客户端;
接收客户端响应所述第一静态资源发送的第二静态资源路由表请求并根据所述路由表请求在数据库中匹配到所述客户端关联用户对应的第二静态资源的路由表后发送至所述客户端;所述数据库中预存有第二静态资源、用户、路由表之间的映射关系;
接收所述客户端发送的针对所述第二静态资源的路由请求,并根据所述数据库预存的所述映射关系判断所述客户端关联用户是否对应有所述第二静态资源的路由表;
若判断结果为有时,发送所述第二静态资源至所述客户端;
若判断结果为没有时,发送访问失败信息至所述客户端。
根据本申请提供的具体实施例,本申请公开了以下技术效果:
本申请的技术方案首先区分出目标页面中需要进行权限控制的静态资源(即第二静态资源)和不需要进行权限控制的第一静态资源,在后台数据库中保存用户对应的该第二静态资源的路由表,在客户端进行目标页面访问时,通过静态资源服务器返回目标页面的第一静态资源,并继而在获取到数据库中保存的客户端关联用户对应的目标页面的第二静态资源的路由表时返回给客户端,以便有权限的客户可以获得路由路径。当后续接收到第二静态资源路由请求时,利用后端数据库中保存的权限信息即用户、第二静态资源、路由表的映射关系对客户端关联用户是否具有第二静态资源的访问权限进行判断,只有具有权限时才返回对应的第二资源至客户端。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是现有技术中前后端分离数据交互示意图;
图2是本申请中***交互示意图;
图3是攻击者利用现有技术在浏览器直接获取源文件源代码结果图;
图4是攻击者利用本申请在浏览器直接获取源文件源代码结果图;
图5是本申请实施例一方法流程图;
图6是本申请实施例二方法流程图;
图7是本申请实施例三装置结构图;
图8是本申请实施例四装置结构图;
图9是计算机***结构图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员所获得的所有其他实施例,都属于本申请保护的范围。
如背景技术所述,前后端分离的背景下,对于静态资源的安全访问是急需解决的问题。本申请旨在提供一种前后端分离背景下,安全的页面静态资源访问方法,对页面中较为重要的静态资源(第二静态资源)进行权限控制,具体实现为在后台数据库中保存每个用户对应的第二静态资源的路由表,在客户端进行目标页面访问时,通过静态资源服务器如nginx返回不需要进行权限控制的目标页面的第一静态资源至客户端,并继而获取数据库中保存的该客户端关联用户的第二静态资源的权限信息返回给客户端,客户端进而请求第二静态资源时,利用数据库保存的权限信息对目标页面的第二静态资源进行权限判断,只有具有权限时才返回对应的第二资源至客户端。基于此当一个没有第二静态资源访问权限的客户端关联用户发起第二静态资源路由请求时,将会被静态资源服务器识别并拒绝,从而在客户端无法获得该第二静态资源。
如图2所示,为本申请的***架构图,包括:前端客户端、静态资源服务器nginx和后端的数据库。该后端数据库可以为mysql、redis中的至少一个。具体设置视需求而定。优选实施例中,nginx也可以通过java服务器与后端数据库进行信息交互。
首先,我们提前区分每一页面中需要进行权限控制的静态资源(后续称第二静态资源)和无需进行特殊权限控制的静态资源(后续称第一静态资源),在后端数据库中提前保存每个用户对应的第二静态资源的路由表。当一个用户具有第二静态资源的路由表,则表示该用户具有访问第二静态资源的权限。当在数据库中不存在某个用户对应的第二静态资源路由表,则表示该用户不具有访问第二静态资源的权限。
为对每一目标页面的第二静态资源进行区分,本申请中通过静态资源文件名作为静态资源的标识,本申请中可以在webpack打包时生成第二静态资源唯一的文件名。
目前webpack打包的文件名默认是随机生成的,需要修改配置。
a)更改webpack配置,在output配置项中添加chunkFilename属性。
output:{chunkFilename:'[name].[hash:8].js',//动态import文件名}
b)修改代码,在动态import()代码处添加注释webpackChunkName告诉webpack打包后的chunk的名称
import(/*webpackChunkName:"MyFile"*/`../containers/MyFile`)
通过上述设置,可以为每一第二静态资源文件生成唯一的文件名,以建立与路由表的对应关系。
每个用户对应的第二静态资源文件的路由表可能会发生变化,甚至为了保证安全性,也需要动态生成或变化每一第二静态资源对应的路由表。
本申请中,具体的利用vue-router路由插件,利用vue-router提供的api进行动态添加路由规则。
其代码实现为:addRoutes进行动态添加路由规则
router.addRoutes(routes:Array<RouteConfig>)。
通过动态添加路由规则可以对数据库中的第二静态资源对应的路由表进行动态修改。
上述工作完成后,已经在数据库中存储了通过vue-router路由插件设置路由表和用户、第二静态资源文件名与路由表之间的映射关系。接下来,对客户端访问目标页面获取静态资源过程进行描述,如图2所示:
客户端首先发送一个针对目标页面的静态资源访问请求至nginx静态资源服务器,该请求中携带有目标页面的页面标识。
nginx静态资源服务器根据所述静态资源访问请求匹配到目标页面对应的第一静态资源并返回至所述客户端。具体的,nginx静态资源服务器根据目标页面的页面标识获得目标页面对应的静态资源,并将其中无需特别权限验证的第一静态资源返回至客户端。此处需要注意的是,能够获得第一静态资源的用户也已经是经过了初步的身份验证的用户,只是第一静态资源对于经过了初步验证的用户均会返回,而第二静态资源则需要进一步的权限验证。
所述客户端响应获取到所述第一静态资源发送针对所述目标页面对应的第二静态资源路由表请求至nginx静态资源服务器。该第二静态资源路由表请求实际上是对目标页面的静态资源访问请求的延续,该请求在客户端获得第一静态资源后可被自动触发,不需要用户进行操作。具体的可调用ajax发送该第二静态资源路由表请求。
所述nginx静态资源服务器根据所述路由表请求在数据库中匹配到所述客户端关联用户对应的所述目标页面的第二静态资源的路由表时,将其发送至所述客户端。具体的nginx静态资源服务器首先确定出目标页面对应的第二静态资源的文件名,并进一步在后台数据库中匹配该文件名对应的路由表,若路由表中有与客户端关联用户对应的,则将其返回客户端。如果客户端关联用户不具有对第二静态资源的访问权限,则此步骤中在后台数据库将查询不到该关联用户对应的该第二静态资源的路由表,此时可返回访问失败的信息至客户端。该过程保证了对第二静态资源具有访问权限的合法用户将会获得路由路径,以后续基于该路径获得第二静态资源。
当后续静态资源服务器接收到客户端发送针对所述第二静态资源的路由请求,此时静态资源服务器需要对该客户端是否具有针对第二静态资源的访问权限进行验证。前述讲到后台数据库中存储了用户、第二静态资源以及路由表的映射关系,此时静态资源服务器可请求数据库中该映射关系,并基于该映射关系判断发出路由请求的客户端关联用户是否具有访问权限,即该关联用户是否出现在第二静态资源的理由表的对应用户中。若是,则有访问权限,则可基于下述步骤获得所需的第二静态资源。但否,则客户端关联用户为无权限者,则静态资源服务器对拒绝返回第二静态资源。
本申请中静态资源服务器可从所述数据库中获取所述第二静态资源对应的所有路由表并判断所有路由表中是否有所述关联用户对应的路由表;
或;
本申请中静态资源服务器可从所述数据库中获取所述关联用户对应的所有路由表并判断所有路由表中是否有所述第二静态资源对应的路由表。
本申请中可利用lua脚本进行权限控制访问静态资源。访问路由页面所需的静态资源文件会先经过nginx的location,将这些路由静态资源的location指向lua脚本。lua会向后端数据库发送请求获取权限信息,lua脚本会根据权限信息判断是否返回给客户端路由的第二静态资源文件。
上述过程中,客户端发送针对第二静态资源的路由之前的步骤为返回路由表,以保证合法用户可以获知第二静态资源的路由路径。而后续步骤则是为了检验非法用户(无权限用户),避免其非法获得第二静态资源。需要明了的是,若为非法用户,其也不会获得第二静态资源的路由表,并在后续验证过程中被拒绝返回第二静态资源文件。
可见本申请通过区分页面的第一静态资源、第二静态资源,对第二静态资源进行权限控制,将动态路由表放在后端数据库,通过nginx静态资源服务器查询数据库进行权限验证,使得攻击者发出的路由请求的验证通不过,进而无法获得第二静态资源,无法在客户端上阅读源码直接或间接获取信息。基于此,提高了静态资源访问的安全性。
图3和图4示出了前后端分离场景下,利用背景技术中的权限控制方法和使用本申请权限控制方法的访问结果图。
图3中显示攻击者可以在浏览器直接获取源文件源代码,而图4中显示,静态资源文件受到了控制,攻击者在没有权限的情况下无法获取源文件源代码。
实施例一
如图5所示,针对上述***,本申请实施例一提供了一种页面静态资源访问方法,应用在静态资源服务器如nginx中,所述方法包括:
S51、根据客户端发送的针对目标页面的静态资源访问请求返回所述目标页面对应的第一静态资源至所述客户端;
S52、接收客户端响应所述第一静态资源发送的第二静态资源路由表请求并根据所述路由表请求在数据库中匹配到所述客户端关联用户对应的第二静态资源的路由表后发送至所述客户端;所述数据库中预存有第二静态资源、用户、路由表之间的映射关系;
S53、接收所述客户端发送的针对所述第二静态资源的路由请求,并根据所述数据库预存的所述映射关系判断所述客户端关联用户是否对应有所述第二静态资源的路由表;
S54、若判断结果为有时,发送所述第二静态资源至所述客户端;
S55、若判断结果为没有时,发送访问失败信息至所述客户端。
优选的,所述数据库中存储有用户、静态资源文件名和与所述静态资源文件名对应的路由表;
所述根据所述路由表请求在数据库中匹配到所述客户端关联用户对应的第二静态资源的路由表后发送至所述客户端包括:
根据所述路由表请求中的所述第二静态资源的文件名匹配到所述客户端关联用户对应的第二静态资源的路由表后发送至所述客户端。
优选的,
所述第二静态资源的文件名通过webpack唯一生成;
和/或;
所述数据库中存储有通过vue-router的接口动态写入的路由表。
优选的,通过lua脚本对数据库中的权限信息进行判断。
实施例二
对应上述实施例一的方法,本申请实施例二还提供一种页面静态资源访问方法,应用在客户端中,如图6所示,所述方法包括:
S61、发送针对目标页面的静态资源访问请求至静态资源服务器;
S62、接收所述静态资源服务器返回的所述目标页面对应的第一静态资源;
S63、响应获取到所述第一静态资源发送针对所述目标页面对应的第二静态资源路由表请求至静态资源服务器;
S64、接收所述静态资源服务器根据所述路由表请求在数据库中匹配到的所述客户端关联用户对应的第二静态资源的路由表;所述数据库中预存有第二静态资源、用户、路由表之间的映射关系;
S65、发送针对所述第二静态资源的路由请求至所述静态资源服务器,以便所述静态资源服务器根据所述数据库预存的所述映射关系判断所述客户端关联用户是否对应有所述第二静态资源的路由表;
S66、在所述判断结果为有时,接收所述静态资源服务器返回的第二静态资源;
S67、在所述判断结果为没有时,接收所述静态资源服务器返回的访问失败信息。
实施例三
对应上述实施例一,本申请还公开一种页面静态资源访问装置,应用在静态资源服务器端,如图7所示,所述装置包括:
目标页面访问请求接收单元71,用于接收客户端发送的针对目标页面的静态资源访问请求;
第一静态资源发送单元72,用于根据所述静态资源访问请求返回所述目标页面对应的第一静态资源至所述客户端;
路由表请求接收单元73,用于接收客户端响应获取到所述第一静态资源发送的路由表请求;
路由表发送单元74,用于根据所述路由表请求在数据库中匹配到所述客户端关联用户对应的第二静态资源的路由表后发送至所述客户端;所述数据库中预存有第二静态资源、用户、路由表之间的映射关系;
第二静态资源路由请求接收单元75,接收所述客户端发送的针对所述第二静态资源的路由请求;
权限判断单元76,用于根据所述数据库预存的所述映射关系判断所述客户端关联用户是否对应有所述第二静态资源的路由表;
结果返回单元77,用于在判断结果为有时,发送所述第二静态资源至所述客户端,在判断结果为没有时,发送访问失败信息至所述客户端。
优选的,所述数据库中存储有用户、静态资源文件名、路由表之间的映射关系;
路由表发送单元,具体用于根据所述路由表请求中的所述第二静态资源的文件名匹配到所述客户端关联用户对应的所述第二静态资源的路由表后发送至所述客户端。
优选的,权限判断单元具体用于通过lua脚本从所述数据库中获取所述第二静态资源对应的所有路由表并判断所有路由表中是否有所述关联用户对应的路由表;
或;
权限判断单元具体用于通过lua脚本从所述数据库中获取所述关联用户对应的所有路由表并判断所有路由表中是否有所述第二静态资源对应的路由表。
实施例四
对应上述实施例二,本申请实施例四还公开一种页面静态资源访问装置,应用在客户端,如图8所示,所述装置包括:
目标页面访问请求发送单元81,用于发送针对目标页面的静态资源访问请求至静态资源服务器;
第一静态资源接收单元82,用于接收所述静态资源服务器返回的所述目标页面对应的第一静态资源;
路由表请求发送单元83,用于响应获取到所述第一静态资源发送针对所述目标页面对应的第二静态资源路由表请求至静态资源服务器;
路由表接收单元84,用于接收所述静态资源服务器根据所述路由表请求在数据库中匹配到的所述客户端关联用户对应的第二静态资源的路由表;所述数据库中预存有第二静态资源、用户、路由表之间的映射关系;
第二静态资源路由请求发送单元85,用于发送针对所述第二静态资源的路由请求至所述静态资源服务器,以便所述静态资源服务器根据所述数据库预存的所述映射关系判断所述客户端关联用户是否对应有所述第二静态资源的路由表;
结果接收单元86,用于在所述判断结果为有时,接收所述静态资源服务器返回的第二静态资源,并用于在所述判断结果为没有时,接收所述静态资源服务器返回的访问失败信息。
实施例五
对应上述方法和装置,本申请实施例五提供一种计算机***,包括:
一个或多个处理器;以及
与所述一个或多个处理器关联的存储器,所述存储器用于存储程序指令,所述程序指令在被所述一个或多个处理器读取执行时,执行实施例一的方法步骤,如执行以下操作:
根据客户端发送的针对目标页面的静态资源访问请求返回所述目标页面对应的第一静态资源至所述客户端;
接收客户端响应所述第一静态资源发送的第二静态资源路由表请求并根据所述路由表请求在数据库中匹配到所述客户端关联用户对应的第二静态资源的路由表后发送至所述客户端;所述数据库中预存有第二静态资源、用户、路由表之间的映射关系;
接收所述客户端发送的针对所述第二静态资源的路由请求,并根据所述数据库预存的所述映射关系判断所述客户端关联用户是否对应有所述第二静态资源的路由表;
若判断结果为有时,发送所述第二静态资源至所述客户端;
若判断结果为没有时,发送访问失败信息至所述客户端。
其中,图9示例性的展示出了计算机***的架构,具体可以包括处理器1510,视频显示适配器1511,磁盘驱动器1512,输入/输出接口1513,网络接口1514,以及存储器1520。上述处理器1510、视频显示适配器1511、磁盘驱动器1512、输入/输出接口1513、网络接口1514,与存储器1520之间可以通过通信总线1530进行通信连接。
其中,处理器1510可以采用通用的CPU(Central Processing Unit,中央处理器)、微处理器、应用专用集成电路(Application Specific Integrated Circuit,ASIC)、或者一个或多个集成电路等方式实现,用于执行相关程序,以实现本申请所提供的技术方案。
存储器1520可以采用ROM(Read Only Memory,只读存储器)、RAM(Random AccessMemory,随机存取存储器)、静态存储设备,动态存储设备等形式实现。存储器1520可以存储用于控制计算机***1500运行的操作***1521,用于控制计算机***1500的低级别操作的基本输入输出***(BIOS)。另外,还可以存储网页浏览器1523,数据存储管理***1524,以及图标字体处理***1525等等。上述图标字体处理***1525就可以是本申请实施例中具体实现前述各步骤操作的应用程序。总之,在通过软件或者固件来实现本申请所提供的技术方案时,相关的程序代码保存在存储器1520中,并由处理器1510来调用执行。
输入/输出接口1513用于连接输入/输出模块,以实现信息输入及输出。输入输出/模块可以作为组件配置在设备中(图中未示出),也可以外接于设备以提供相应功能。其中输入设备可以包括键盘、鼠标、触摸屏、麦克风、各类传感器等,输出设备可以包括显示器、扬声器、振动器、指示灯等。
网络接口1514用于连接通信模块(图中未示出),以实现本设备与其他设备的通信交互。其中通信模块可以通过有线方式(例如USB、网线等)实现通信,也可以通过无线方式(例如移动网络、WIFI、蓝牙等)实现通信。
总线1530包括一通路,在设备的各个组件(例如处理器1510、视频显示适配器1511、磁盘驱动器1512、输入/输出接口1513、网络接口1514,与存储器1520)之间传输信息。
另外,该计算机***1500还可以从虚拟资源对象领取条件信息数据库1541中获得具体领取条件的信息,以用于进行条件判断,等等。
需要说明的是,尽管上述设备仅示出了处理器1510、视频显示适配器1511、磁盘驱动器1512、输入/输出接口1513、网络接口1514,存储器1520,总线1530等,但是在具体实施过程中,该设备还可以包括实现正常运行所必需的其他组件。此外,本领域的技术人员可以理解的是,上述设备中也可以仅包含实现本申请方案所必需的组件,而不必包含图中所示的全部组件。
通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本申请可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,云服务器,或者网络设备等)执行本申请各个实施例或者实施例的某些部分所述的方法。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于***或***实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的***及***实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
以上对本申请所提供的数据处理方法、装置及设备,进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处。综上所述,本说明书内容不应理解为对本申请的限制。
Claims (10)
1.一种页面静态资源访问方法,应用在静态资源服务器中,其特征在于,所述方法包括:
根据客户端发送的针对目标页面的静态资源访问请求返回所述目标页面对应的第一静态资源至所述客户端;
接收客户端响应所述第一静态资源发送的第二静态资源路由表请求并根据所述路由表请求在数据库中匹配到所述客户端关联用户对应的第二静态资源的路由表后发送至所述客户端;所述数据库中预存有第二静态资源、用户、路由表之间的映射关系;
接收所述客户端发送的针对所述第二静态资源的路由请求,并根据所述数据库预存的所述映射关系判断所述客户端关联用户是否对应有所述第二静态资源的路由表;
若判断结果为有时,发送所述第二静态资源至所述客户端;
若判断结果为没有时,发送访问失败信息至所述客户端。
2.如权利要求1所述的页面静态资源访问方法,其特征在于,所述数据库中存储有用户、静态资源文件名、路由表之间的映射关系;
所述根据所述路由表请求在数据库中匹配到所述客户端关联用户对应的第二静态资源的路由表后发送至所述客户端包括:
根据所述路由表请求中的所述第二静态资源的文件名匹配到所述客户端关联用户对应的第二静态资源的路由表后发送至所述客户端。
3.如权利要求2所述的页面静态资源访问方法,其特征在于,
所述第二静态资源的文件名通过webpack唯一生成;
和/或;
所述数据库中存储有通过vue-router的接口动态写入的路由表。
4.如权利要求1-3任何一项所述的页面静态资源访问方法,其特征在于,所述根据所述数据库预存的所述映射关系判断所述客户端关联用户是否对应有所述第二静态资源的路由表包括:
通过lua脚本从所述数据库中获取所述第二静态资源对应的所有路由表并判断所有路由表中是否有所述关联用户对应的路由表;
或;
通过lua脚本从所述数据库中获取所述关联用户对应的所有路由表并判断所有路由表中是否有所述第二静态资源对应的路由表。
5.一种页面静态资源访问方法,其特征在于,所述方法包括:
发送针对目标页面的静态资源访问请求至静态资源服务器并接收所述静态资源服务器返回的所述目标页面对应的第一静态资源;
响应获取到所述第一静态资源发送针对所述目标页面对应的第二静态资源路由表请求至静态资源服务器并接收所述静态资源服务器根据所述路由表请求在数据库中匹配到的所述客户端关联用户对应的第二静态资源的路由表;所述数据库中预存有第二静态资源、用户、路由表之间的映射关系;
发送针对所述第二静态资源的路由请求至所述静态资源服务器,以便所述静态资源服务器根据所述数据库预存的所述映射关系判断所述客户端关联用户是否对应有所述第二静态资源的路由表;
在所述判断结果为有时,接收所述静态资源服务器返回的第二静态资源;
在所述判断结果为没有时,接收所述静态资源服务器返回的访问失败信息。
6.一种页面静态资源访问装置,其特征在于,所述装置包括:
目标页面访问请求接收单元,用于接收客户端发送的针对目标页面的静态资源访问请求;
第一静态资源发送单元,用于根据所述静态资源访问请求返回所述目标页面对应的第一静态资源至所述客户端;
路由表请求接收单元,用于接收客户端响应获取到所述第一静态资源发送的路由表请求;
路由表发送单元,用于根据所述路由表请求在数据库中匹配到所述客户端关联用户对应的第二静态资源的路由表后发送至所述客户端;所述数据库中预存有第二静态资源、用户、路由表之间的映射关系;
第二静态资源路由请求接收单元,接收所述客户端发送的针对所述第二静态资源的路由请求;
权限判断单元,用于根据所述数据库预存的所述映射关系判断所述客户端关联用户是否对应有所述第二静态资源的路由表;
结果返回单元,用于在判断结果为有时,发送所述第二静态资源至所述客户端,在判断结果为没有时,发送访问失败信息至所述客户端。
7.如权利要求6所述的页面静态资源访问装置,其特征在于,所述数据库中存储有用户、静态资源文件名、路由表之间的映射关系;
路由表发送单元,具体用于根据所述路由表请求中的所述第二静态资源的文件名匹配到所述客户端关联用户对应的所述第二静态资源的路由表后发送至所述客户端。
8.如权利要求7所述的页面静态资源访问装置,其特征在于,
所述第二静态资源的文件名通过webpack唯一生成;
和/或;
所述路由表是通过vue-router的接口动态写入所述数据库。
9.一种页面静态资源访问装置,其特征在于,所述装置包括:
目标页面访问请求发送单元,用于发送针对目标页面的静态资源访问请求至静态资源服务器;
第一静态资源接收单元,用于接收所述静态资源服务器返回的所述目标页面对应的第一静态资源;
路由表请求发送单元,用于响应获取到所述第一静态资源发送针对所述目标页面对应的第二静态资源路由表请求至静态资源服务器;
路由表接收单元,用于接收所述静态资源服务器根据所述路由表请求在数据库中匹配到的所述客户端关联用户对应的第二静态资源的路由表;所述数据库中预存有第二静态资源、用户、路由表之间的映射关系;
第二静态资源路由请求发送单元,用于发送针对所述第二静态资源的路由请求至所述静态资源服务器,以便所述静态资源服务器根据所述数据库预存的所述映射关系判断所述客户端关联用户是否对应有所述第二静态资源的路由表;
结果接收单元,用于在所述判断结果为有时,接收所述静态资源服务器返回的第二静态资源,并用于在所述判断结果为没有时,接收所述静态资源服务器返回的访问失败信息。
10.一种计算机***,其特征在于,包括:
一个或多个处理器;以及
与所述一个或多个处理器关联的存储器,所述存储器用于存储程序指令,所述程序指令在被所述一个或多个处理器读取执行时,执行如下操作:
根据客户端发送的针对目标页面的静态资源访问请求返回所述目标页面对应的第一静态资源至所述客户端;
接收客户端响应所述第一静态资源发送的第二静态资源路由表请求并根据所述路由表请求在数据库中匹配到所述客户端关联用户对应的第二静态资源的路由表后发送至所述客户端;所述数据库中预存有第二静态资源、用户、路由表之间的映射关系;
接收所述客户端发送的针对所述第二静态资源的路由请求,并根据所述数据库预存的所述映射关系判断所述客户端关联用户是否对应有所述第二静态资源的路由表;
若判断结果为有时,发送所述第二静态资源至所述客户端;
若判断结果为没有时,发送访问失败信息至所述客户端。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911205494.6A CN111031111B (zh) | 2019-11-29 | 2019-11-29 | 一种页面静态资源访问方法、装置及*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911205494.6A CN111031111B (zh) | 2019-11-29 | 2019-11-29 | 一种页面静态资源访问方法、装置及*** |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111031111A true CN111031111A (zh) | 2020-04-17 |
CN111031111B CN111031111B (zh) | 2022-12-09 |
Family
ID=70203876
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911205494.6A Active CN111031111B (zh) | 2019-11-29 | 2019-11-29 | 一种页面静态资源访问方法、装置及*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111031111B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112328938A (zh) * | 2020-11-05 | 2021-02-05 | 常州微亿智造科技有限公司 | Web应用权限控制方法及装置 |
CN113010224A (zh) * | 2021-03-03 | 2021-06-22 | 南方电网数字电网研究院有限公司 | 前端微服务化方法、装置、计算机设备和存储介质 |
CN113326081A (zh) * | 2021-06-30 | 2021-08-31 | 中国平安人寿保险股份有限公司 | 静态资源的处理方法、装置、计算机设备和存储介质 |
CN113377647A (zh) * | 2021-05-27 | 2021-09-10 | 北京达佳互联信息技术有限公司 | 页面处理方法、装置、服务器、终端及可读存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102447677A (zh) * | 2010-09-30 | 2012-05-09 | 北大方正集团有限公司 | 资源访问控制方法、***和设备 |
CN106202547A (zh) * | 2016-07-26 | 2016-12-07 | 努比亚技术有限公司 | 一种站点管理方法、装置以及一种网站*** |
US20170316215A1 (en) * | 2014-10-24 | 2017-11-02 | Carrier Corporation | Policy-based auditing of static permissions for physical access control |
CN107590145A (zh) * | 2016-07-06 | 2018-01-16 | 北京神州泰岳软件股份有限公司 | 一种页面静态资源的处理方法和装置 |
CN109376316A (zh) * | 2018-11-05 | 2019-02-22 | 珠海格力电器股份有限公司 | 动态加载路由的方法、***和服务器 |
-
2019
- 2019-11-29 CN CN201911205494.6A patent/CN111031111B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102447677A (zh) * | 2010-09-30 | 2012-05-09 | 北大方正集团有限公司 | 资源访问控制方法、***和设备 |
US20170316215A1 (en) * | 2014-10-24 | 2017-11-02 | Carrier Corporation | Policy-based auditing of static permissions for physical access control |
CN107590145A (zh) * | 2016-07-06 | 2018-01-16 | 北京神州泰岳软件股份有限公司 | 一种页面静态资源的处理方法和装置 |
CN106202547A (zh) * | 2016-07-26 | 2016-12-07 | 努比亚技术有限公司 | 一种站点管理方法、装置以及一种网站*** |
CN109376316A (zh) * | 2018-11-05 | 2019-02-22 | 珠海格力电器股份有限公司 | 动态加载路由的方法、***和服务器 |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112328938A (zh) * | 2020-11-05 | 2021-02-05 | 常州微亿智造科技有限公司 | Web应用权限控制方法及装置 |
CN112328938B (zh) * | 2020-11-05 | 2022-07-26 | 常州微亿智造科技有限公司 | Web应用权限控制方法及装置 |
CN113010224A (zh) * | 2021-03-03 | 2021-06-22 | 南方电网数字电网研究院有限公司 | 前端微服务化方法、装置、计算机设备和存储介质 |
CN113010224B (zh) * | 2021-03-03 | 2024-01-30 | 南方电网数字平台科技(广东)有限公司 | 前端微服务化方法、装置、计算机设备和存储介质 |
CN113377647A (zh) * | 2021-05-27 | 2021-09-10 | 北京达佳互联信息技术有限公司 | 页面处理方法、装置、服务器、终端及可读存储介质 |
CN113326081A (zh) * | 2021-06-30 | 2021-08-31 | 中国平安人寿保险股份有限公司 | 静态资源的处理方法、装置、计算机设备和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN111031111B (zh) | 2022-12-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111031111B (zh) | 一种页面静态资源访问方法、装置及*** | |
CN109743315B (zh) | 针对网站的行为识别方法、装置、设备及可读存储介质 | |
CN111416811B (zh) | 越权漏洞检测方法、***、设备及存储介质 | |
CN108322461B (zh) | 应用程序自动登录的方法、***、装置、设备和介质 | |
CN103843004B (zh) | 装置定制白名单 | |
US8966604B2 (en) | Method of preventing sequential unauthorized logins | |
CN111404923A (zh) | 容器集群访问权限的控制方法及*** | |
CN108989355B (zh) | 一种漏洞检测方法和装置 | |
CN104424423B (zh) | 应用程序的权限确定方法和装置 | |
CN102664874B (zh) | 一种安全登陆的方法和*** | |
EP2932390B1 (en) | Inversion-of-control component service models for virtual environments | |
CN111163095B (zh) | 网络攻击分析方法、网络攻击分析装置、计算设备和介质 | |
CN110708335A (zh) | 访问认证方法、装置及终端设备 | |
US20150180859A1 (en) | Login requesting device and method for requesting login to server and storage medium storing a program used therefor | |
CN110888838A (zh) | 基于对象存储的请求处理方法、装置、设备及存储介质 | |
CN104580112A (zh) | 一种业务认证方法、***及服务器 | |
CN109088884B (zh) | 基于身份验证的网址访问方法、装置、服务器及存储介质 | |
CN103929419A (zh) | 访问控制方法和装置 | |
US11882154B2 (en) | Template representation of security resources | |
CN110909340A (zh) | 一种登录处理方法、***、装置、电子设备及存储介质 | |
JP2019519849A (ja) | サーバへの攻撃を防ぐ方法及びデバイス | |
KR101318132B1 (ko) | 라이브러리에 대한 가젯 액세스의 보안 방법 | |
US20200358790A1 (en) | Detecting safe internet resources | |
CN112231674A (zh) | 一种url地址的跳转验证方法、***及电子设备 | |
CN102984229B (zh) | 用于配置信任机的方法和*** |
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 |