CN111209582A - 请求认证方法、装置、设备及存储介质 - Google Patents
请求认证方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN111209582A CN111209582A CN202010009330.2A CN202010009330A CN111209582A CN 111209582 A CN111209582 A CN 111209582A CN 202010009330 A CN202010009330 A CN 202010009330A CN 111209582 A CN111209582 A CN 111209582A
- Authority
- CN
- China
- Prior art keywords
- request
- access
- application access
- access request
- authentication
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Health & Medical Sciences (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Storage Device Security (AREA)
Abstract
本发明公开一种请求认证方法、装置、设备及存储介质,该方法包括:在客户端向目标服务器发送应用接入请求时,对应用接入请求进行拦截,提取请求头中包含的入参结构数据,并检测应用接入请求是否为初次接入;若是则从入参结构数据中读取请求加密参数;基于请求加密参数通过预设加密算法验证应用接入请求是否可信;在应用接入请求可信时,对应用接入请求进行权限认证,并在认证通过时将应用接入请求发送至目标服务器,由于是通过请求中携带的入参结构数据对请求是否可信进行验证,在请求可信时再对请求进行权限认证,相比于传统的请求认证流程,不会直接将验证接口暴露给客户端,在提高请求认证效率的同时,也保证了系统的安全性与稳定性。
Description
技术领域
本发明涉及计算机通信技术领域,尤其涉及一种请求认证方法、装置、设备及存储介质。
背景技术
目前,传统请求认证流程是将用户权限和签名校验等作为普通的应用程序编程接口进行调用,易暴露内部的某些细节而使系统遭受外部攻击(例如,请求的入参结构数据容易被嗅探或强力破解)。而当权限认证成功后请求会流转到核心逻辑处理,这就极大增加了业务模块和系统非业务功能之间的耦合性,而且后期如有第三方应用程序想接入系统,就需要修改现有代码或增加新的冗余代码,极不利于扩展和维护,也使系统结构性功能降低。因此,如何提供一种简单、便捷,且安全高效的请求认证技术,就成为一个亟待解决的技术问题。
上述内容仅用于辅助理解本发明的技术方案,并不代表承认上述内容是现有技术。
发明内容
本发明的主要目的在于提供了一种请求认证方法、装置、设备及存储介质,旨在解决现有的请求认证技术安全性低,容易使系统遭受外部攻击的技术问题。
为实现上述目的,本发明提供了一种请求认证方法,所述方法包括以下步骤:
在客户端向目标服务器发送应用接入请求时,对所述应用接入请求进行拦截,提取所述应用接入请求的请求头中包含的入参结构数据;
根据所述入参结构数据检测所述应用接入请求是否为初次接入;
在所述应用接入请求为初次接入时,从所述入参结构数据中读取请求加密参数;
基于所述请求加密参数通过预设加密算法验证所述应用接入请求是否可信;
在所述应用接入请求可信时,对所述应用接入请求进行权限认证,并在认证通过时将所述应用接入请求发送至目标服务器。
优选地,所述根据所述入参结构数据检测所述应用接入请求是否为初次接入的步骤之前,所述方法还包括:
获取所述应用接入请求对应的请求类型,并判断所述请求类型是否属于预设请求类型;
若属于,则执行所述根据所述入参结构数据检测所述应用接入请求是否为初次接入的步骤;
所述根据所述入参结构数据检测所述应用接入请求是否为初次接入的步骤,包括:
检测所述入参结构数据中是否携带身份令牌,若未携带则判定所述应用接入请求为初次接入。
优选地,所述在所述应用接入请求为初次接入时,从所述入参结构数据中读取请求加密参数的步骤,包括:
在所述应用接入请求为初次接入时,获取所述入参结构数据对应的数据交换格式;
检测所述数据交换格式是否属于预设数据交换格式;
若不属于,则根据所述请求头中包含的访问域名确定待访问的目标服务器,并查询所述目标服务器对应的目标数据交换格式;
基于所述目标数据交换格式对所述入参结构数据进行格式转换,从转换后的入参结构数据中读取请求加密参数。
优选地,所述查询所述目标服务器对应的目标数据交换格式的步骤,包括:
将所述目标服务器对应的服务器标识作为键对象;
根据所述键对象在预设动态键值对中查找对应的值对象,所述值对象中存放有数据交换格式字段;
根据所述数据交换格式字段确定所述目标服务器对应的目标数据交换格式。
优选地,所述基于所述请求加密参数通过预设加密算法验证所述应用接入请求是否可信的步骤,包括:
读取所述请求加密参数中包含的加密数据串和请求签名数据;
提取所述加密数据串中包含的待拼接参数,并按字母顺序对所述待拼接参数进行拼接,获得目标参数;
采用预设加密算法计算所述目标参数对应的签名值,将所述签名值与所述请求签名数据中携带的签名值进行比对;
根据比对结果判断所述应用接入请求是否可信。
优选地,所述在所述应用接入请求可信时,对所述应用接入请求进行权限认证,并在认证通过时将所述应用接入请求发送至目标服务器的步骤,包括:
在所述应用接入请求可信时,提取所述请求头中携带的客户端标识;
根据所述客户端标识在预先构建的映射关系中查找对应的目标权限类型,所述映射关系中存放有客户端标识和权限类型之间的对应关系;
检测所述应用接入请求的请求权限是否属于所述目标权限类型;
若属于则判定权限认证通过,并将所述应用接入请求发送至目标服务器。
优选地,所述检测所述应用接入请求的请求权限是否属于所述目标权限类型的步骤之后,所述方法还包括:
若不属于则判定权限认证未通过,并将所述客户端标识作为日志索引从本地预存的监控日志中查找对应的访问记录;
根据所述访问记录获取客户端的访问频率以及访问成功率;
根据所述访问成功率以及所述访问频率判断所述客户端是否存在恶意访问情况;
若存在,则将所述客户端标识添加至预设访问黑名单。
此外,为实现上述目的,本发明还提出一种请求认证装置,所述装置包括:
请求拦截模块,用于在客户端向目标服务器发送应用接入请求时,对所述应用接入请求进行拦截,提取所述应用接入请求的请求头中包含的入参结构数据;
接入检测模块,用于根据所述入参结构数据检测所述应用接入请求是否为初次接入;
数据读取模块,用于在所述应用接入请求为初次接入时,从所述入参结构数据中读取请求加密参数;
请求验证模块,用于基于所述请求加密参数通过预设加密算法验证所述应用接入请求是否可信;
权限认证模块,用于在所述应用接入请求可信时,对所述应用接入请求进行权限认证,并在认证通过时将所述应用接入请求发送至目标服务器。
此外,为实现上述目的,本发明还提出一种请求认证设备,所述设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的请求认证程序,所述请求认证程序配置为实现如上文所述的请求认证方法的步骤。
此外,为实现上述目的,本发明还提出一种存储介质,所述存储介质上存储有请求认证程序,所述请求认证程序被处理器执行时实现如上文所述的请求认证方法的步骤。
本发明通过因特网过滤器在客户端向目标服务器发送应用接入请求时,对应用接入请求进行拦截,提取应用接入请求的请求头中包含的入参结构数据;根据入参结构数据检测应用接入请求是否为初次接入;在应用接入请求为初次接入时,从入参结构数据中读取请求加密参数;基于请求加密参数通过预设加密算法验证应用接入请求是否可信;在应用接入请求可信时,对应用接入请求进行权限认证,并在认证通过时将应用接入请求发送至目标服务器,由于本发明是通过因特网过滤器根据请求中携带的入参结构数据对请求是否可信进行验证,在请求可信时再对请求进行权限认证,相比于传统的请求认证流程,不会直接将验证接口暴露给客户端,在提高请求认证效率的同时,也保证了系统的安全性与稳定性。
附图说明
图1是本发明实施例方案涉及的硬件运行环境的请求认证设备的结构示意图;
图2为本发明请求认证方法第一实施例的流程示意图;
图3为本发明请求认证方法第二实施例的流程示意图;
图4为本发明请求认证方法第三实施例的流程示意图;
图5为本发明请求认证装置第一实施例的结构框图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
参照图1,图1为本发明实施例方案涉及的硬件运行环境的请求认证设备结构示意图。
如图1所示,该请求认证设备可以包括:处理器1001,例如中央处理器(CentralProcessing Unit,CPU),通信总线1002、用户接口1003,网络接口1004,存储器1005。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(Display)、输入单元比如键盘(Keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如无线保真(WIreless-FIdelity,WI-FI)接口)。存储器1005可以是高速的随机存取存储器(RandomAccess Memory,RAM)存储器,也可以是稳定的非易失性存储器(Non-Volatile Memory,NVM),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。
本领域技术人员可以理解,图1中示出的结构并不构成对请求认证设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
如图1所示,作为一种存储介质的存储器1005中可以包括操作系统、数据存储模块、网络通信模块、用户接口模块以及请求认证程序。
在图1所示的请求认证设备中,网络接口1004主要用于与网络服务器进行数据通信;用户接口1003主要用于与用户进行数据交互;本发明请求认证设备中的处理器1001、存储器1005可以设置在请求认证设备中,所述请求认证设备通过处理器1001调用存储器1005中存储的请求认证程序,并执行本发明实施例提供的请求认证方法。
本发明实施例提供了一种请求认证方法,参照图2,图2为本发明请求认证方法第一实施例的流程示意图。
本实施例中,所述请求认证方法包括以下步骤:
步骤S10:在客户端向目标服务器发送应用接入请求时,对所述应用接入请求进行拦截,提取所述应用接入请求的请求头中包含的入参结构数据;
需要说明的是,本实施例方法的执行主体为可以是具有用户(请求)认证功能的因特网过滤器,又或者是集成有该因特网过滤器的计算机软件。所谓因特网过滤器,即限制或控制互联网用户能够访问的资源的软件。
考虑到传统请求认证流程中用户认证功能(如访问权限认证、签名校验等)都耦合在业务代码之中,每个请求均需验证这部分逻辑,虽然这部分代码可以复用,但是从结构上来说和业务逻辑混杂在一起,不利于维护和扩展。因此本实施例将用户认证功能抽取后前置到上述因特网过滤器中,以使得所有的应用接入请求首先经过因特网过滤器的认证、校验通过后才允许应用请求接入对应的核心服务器,从而保证系统的信息安全,所述系统为所述因特网过滤器以及核心服务器所在的系统。
应理解的是,所述应用接入请求可以是应用程序客户端(以下简称客户端)发送的对网络资源或网络设备(如服务器)的访问请求。所述入参结构数据可以是应用接入请求的请求头中携带的数据,例如请求类型(GET、POET、HEAD等)、身份令牌(token)、请求中携带的加密参数、指定的其它参数等。
在具体实现中,因特网过滤器(以下简称过滤器)在任何客户端发送应用接入请求至目标服务器时,都将对该应用接入请求进行拦截并解析,然后根据解析结果提取应用接入请求的请求头中包含的入参结构数据。
步骤S20:根据所述入参结构数据检测所述应用接入请求是否为初次接入;
需要说明的是,为保证系统的信息安全,本实施例中过滤器将对每个拦截到的应用接入请求进行检测,以判断其是否为初次接入。本实施例中通过检测入参结构数据中是否携带身份令牌(token)来判断请求是否为初次接入,若携带,则判定不为初次接入;反之,则判定为初次接入。
当然,为简化请求认证流程,避免过滤器进行过多的无用操作,在对应用接入请求进行初次接入检测前,过滤器可先对应用接入请求的请求类型进行判断。具体的,过滤器可获取所述应用接入请求对应的请求类型,并判断所述请求类型是否属于预设请求类型,若属于则继续执行所述步骤S20。其中,所述预设请求类型包括GET和POST两种类型,若请求类型不属于预设请求类型中的任意一种,则直接将该应用接入请求作为无效请求。
在具体实现中,过滤器可根据入参结构数据中的请求类型判断该请求类型是否属于预设请求类型,若属于,则检测入参结构数据中是否携带身份令牌,若未携带则判定所述应用接入请求为初次接入。
步骤S30:在所述应用接入请求为初次接入时,从所述入参结构数据中读取请求加密参数;
需要说明的是,所述请求加密参数可以是应用接入请求中包含的加密数据串(params)以及基于该加密数据串的请求签名数据(signdata)。本实施例应用接入请求中携带的请求加密参数用于验证请求是否可信,从而能够避免请求的入参结构数据被恶意篡改所导致的系统重要信息泄露。
应理解的是,实际应用中,客户端所使用的数据交换格式与服务器所使用的数据交换格式可能不同。例如,客户端A使用的数据交换格式为JS对象简谱(JavaScript ObjectNotation,JSON)格式,而服务器B使用的数据交换格式为可扩展标记语言(ExtensibleMarkup Language,XML)格式,正常情况下若服务器B对客户端A发送的接入请求进行响应,就需要先将接入请求中数据的数据格式转换成XML格式,然后再进行响应。而这种格式转换操作无疑会加重服务器的运行负担,降低服务器对各类请求的处理效率。因此,为进一步提高服务器的请求响应/处理效率,本实施例中过滤器在检测到应用接入请求为初次接入时,还将获取请求中入参结构数据对应的数据交换格式,然后检测是否需要对其进行格式转换,若需要则对入参结构数据进行格式转换后再进行请求加密数据的读取。
具体的,过滤器可在所述应用接入请求为初次接入时,获取所述入参结构数据对应的数据交换格式;检测所述数据交换格式是否属于预设数据交换格式;若不属于,则根据所述请求头中包含的访问域名确定待访问的目标服务器,并查询所述目标服务器对应的目标数据交换格式;基于所述目标数据交换格式对所述入参结构数据进行格式转换,从转换后的入参结构数据中读取请求加密参数。
需要说明的是,本实施例中所述预设数据交换格式可以是预先配置有相应格式转换策略的数据交换格式,考虑到当前常用的数据交换格式有JSON、XML、YAML(一种可读性高,用来表达数据序列化的格式)等几类,本实施例可预先在过滤器侧为上述预设数据交换格式配置对应的格式转换策略,以使得过滤器在检测到应用接入请求的数据交换格式为上述预设数据交换格式时,直接从对应的数据库查找相应的格式转换策略来对应用接入请求中的入参结构数据进行格式转换,进而提高服务器的请求处理效率。
进一步地,为尽可能提高服务器的工作效率,降低服务器运算量。对于不属于上述预设数据交换格式的入参结构数据,本实施例还可预先在过滤器侧维护一个动态键值对,该动态键值对“key-value”中键对象key为服务器对应的服务器标识,值对象value中则存放有该服务器标识对应的数据交换格式字段(该字段中包含目标服务器所允许的数据交换格式)。过滤器在确定出目标服务器对应的服务器标识后,即可根据该动态键值对实现对目标数据交换格式的快速确定,然后根据确定出的目标数据格式对入参结构数据进行格式转换。
具体的,过滤器在检测到应用接入请求为初次接入时,获取入参结构数据对应的数据交换格式;然后检测数据交换格式是否属于预设数据交换格式;若不属于,则根据请求头中包含的访问域名确定待访问的目标服务器,再将目标服务器对应的服务器标识作为键对象;根据该键对象在预设动态键值对中查找对应值对象中存放的数据交换格式字段;然后根据数据交换格式字段确定目标服务器对应的目标数据交换格式,并基于目标数据交换格式对入参结构数据进行格式转换,从转换后的入参结构数据中读取请求加密参数。
步骤S40:基于所述请求加密参数通过预设加密算法验证所述应用接入请求是否可信;
需要说明的是,所述预设加密算法可以是能够用于检测数据是否被篡改的算法,例如消息摘要算法(SHA1、MD5)、公钥加密算法(RSA算法)、哈希消息认证码(Hash-basedMessage Authentication Code,HMAC)算法等。考虑到基于MD5、SHA1的信息摘要特性、不可逆性以及其常用的应用场景,本实施例中所述预设加密算法优选为SHA1或MD5。
在具体实现中,过滤器可读取请求加密参数中包含的加密数据串和请求签名数据,然后通过上述预设加密算法对应用接入请求进行验证。具体的,过滤器在获取到加密数据串和请求签名数据后,将对加密数据串进行签名计算,然后将计算出的结果与请求签名数据中的签名值进行比对,若一致,则表明请求中携带的数据未被篡改,该请求是可信的;反之,则判定请求不可信。
步骤S50:在所述应用接入请求可信时,对所述应用接入请求进行权限认证,并在认证通过时将所述应用接入请求发送至目标服务器。
应理解的是,所述权限认证,即验证应用接入请求是否具有对目标服务器资源/数据库的访问权限,或者是否拥有对资源/数据库中的数据进行删改查等操作的管理权限。在进行权限认证时,过滤器可先确定发起该应用接入请求的客户端拥有目标服务器的哪些权限,然后检测应用接入请求所请求的权限是否属于这些权限中的一类或几类,若是则认证通过;反之则认证未通过。
在具体实现中,过滤器在判定出应用接入请求可信时,即可对应用接入请求进行权限认证,然后在认证通过时将应用接入请求发送至目标服务器,由目标服务器对其进行响应。
本实施例通过在客户端向目标服务器发送应用接入请求时,对应用接入请求进行拦截,提取应用接入请求的请求头中包含的入参结构数据;根据入参结构数据检测应用接入请求是否为初次接入;在应用接入请求为初次接入时,从入参结构数据中读取请求加密参数;基于请求加密参数通过预设加密算法验证应用接入请求是否可信;在应用接入请求可信时,对应用接入请求进行权限认证,并在认证通过时将应用接入请求发送至目标服务器,由于本实施例是通过请求中携带的入参结构数据对请求是否可信进行验证,在请求可信时再对请求进行权限认证,相比于传统的请求认证流程,不会直接将验证接口暴露给客户端,在提高请求认证效率的同时,也保证了系统的安全性与稳定性。
参考图3,图3为本发明请求认证方法第二实施例的流程示意图。
基于上述第一实施例,在本实施例中,所述步骤S40包括:
步骤S401:读取所述请求加密参数中包含的加密数据串和请求签名数据;
应理解的是,本实施例中,所述加密数据串可以是应用接入请求核心数据字符串中所包含的所有参数(params),这些参数用于验证请求所携带的数据是否被恶意篡改。相应地,所述请求签名数据(signdata)中包含签名值、预先指定的签名值计算算法等。
在具体实现中,过滤器在验证应用接入请求是否可信时,可读取请求加密参数中包含的加密数据串和请求签名数据,然后基于这些读取的数据来进行签名值验证(即对请求是否可信进行验证)。
步骤S402:提取所述加密数据串中包含的待拼接参数,并按字母顺序对所述待拼接参数进行拼接,获得目标参数;
应理解的是,所述待拼接参数可以是加密数据串中包含的用于进行签名值验证的数据。不同的应用接入请求所包含的待拼接参数的个数并不相同,对于待拼接参数较少的应用接入请求,采用一一验证的方式进行签名值验证效率较高,而对于待拼接参数较多的应用接入请求,采用一一验证的方式进行签名值验证将会大大降低验证效率,反而不利于签名值验证。
因此,针对上述待拼接参数数量规模不一的情况,本实施例过滤器在提取到加密数据串中包含的待拼接参数后,可先统计待拼接参数的数量,然后将该数量与预设阈值进行比较,若高于该预设阈值,则按照字母顺序对所述待拼接参数进行拼接获得目标参数,然后再基于拼接后的目标参数进行签名值验证;若低于该预设阈值则采用一一验证的方式对待拼接参数进行验证。
进一步地,为提高上述一一验证的方式的验证效率,本实施例中过滤器可采用多线程处理机制来分别对待拼接参数进行同步的验证,进而提高验证效率。
步骤S403:采用预设加密算法计算所述目标参数对应的签名值,将所述签名值与所述请求签名数据中携带的签名值进行比对;
应理解的是,考虑到MD5、SHA1的信息摘要特性、不可逆性以及其常用的应用场景,本实施例中所述预设加密算法优选为SHA1或MD5算法。下面以MD5算法为例对本步骤进行说明。
在实际应用中,若过滤器提取到加密数据串中包含的待拼接参数为“a123、b456、c789”,则按字母顺序对该待拼接参数进行拼接获得的目标参数(字符串)为a123b456c789,通过MD5算法计算出目标参数“a123b456c789”的结果值(即所述签名值)为16位小写的字符串“006d6d4a9bd76130”,此时过滤器即可将该签名值与请求签名数据(signdata)中携带的签名值进行比对,若一致则表明应用接入请求携带的参数未被篡改,请求可信。
步骤S404:根据比对结果判断所述应用接入请求是否可信。
在具体实现中,若过滤器根据对比结果检测到采用预设加密算法计算的签名值与请求签名数据中携带的签名值完全一致,则可直接判定应用接入请求是可信的;反之若不一致,则判定应用接入请求不可信,需要进一步进行安全性校验。
本实施例通过读取请求加密参数中包含的加密数据串和请求签名数据;然后提取加密数据串中包含的待拼接参数,并按字母顺序对待拼接参数进行拼接,获得目标参数;再采用预设加密算法计算目标参数对应的签名值,然后将签名值与请求签名数据中携带的签名值进行比对;最后根据比对结果判断应用接入请求是否可信,能够准确的检测出请求中携带的数据是否被恶意篡改,提高了系统的安全性。
参考图4,图4为本发明请求认证方法第三实施例的流程示意图。
基于上述各实施例,在本实施例中,所述步骤S50可具体包括:
步骤S501:在所述应用接入请求可信时,提取所述请求头中携带的客户端标识;
需要说明的是,本实施例中所述客户端标识可以是能够将不同客户端进行区分的唯一标识信息,该标识信息可以是客户端所在设备或终端的设备序列号、互联网协议地址,又或是媒体访问控制地址(Mac地址)等。
在执行本步骤之前,可预先将不同客户端所拥有的、对目标服务器的权限类型(例如,访问、增、删、改、查等)与该客户端的标识信息进行关联,以便过滤器可根据客户端标识实现对客户端所拥有的权限类型的快速确定。
在具体实现中,过滤器可在检测到应用接入请求可信时,对应用接入请求的请求头中携带的客户端标识进行提取。
步骤S502:根据所述客户端标识在预先构建的映射关系中查找对应的目标权限类型,所述映射关系中存放有客户端标识和权限类型之间的对应关系;
需要说明的是,考虑到映射关系表便于维护更新,本实施例可采用映射关系(表)的形式将客户端所拥有的目标服务器的权限类型与客户端的标识信息进行关联。
在具体实现中,过滤器在提取到客户端标识后,即可在预先构建的映射关系中查找对应的目标权限类型。
步骤S503:检测所述应用接入请求的请求权限是否属于所述目标权限类型;
应理解的是,所述请求权限即应用接入请求当前需要使用的权限。过滤器在通过映射关系查找到客户端被允许的权限类型(即所述目标权限类型)后,即可检测用接入请求的请求权限是否属于目标权限类型,然后根据检测结果执行后续操作。
步骤S504:若属于则判定权限认证通过,并将所述应用接入请求发送至目标服务器。
在具体实现中,过滤器若检测到应用接入请求的请求权限属于目标权限类型,则判定权限认证通过,此时即可将应用接入请求发送至目标服务器,由目标服务器来对其进行响应。
步骤S505:若不属于则判定权限认证未通过,并将所述客户端标识作为日志索引从本地预存的监控日志中查找对应的访问记录;
应理解的是,当权限认证未通过时,表明客户端可能存在越权访问又或是恶意访问的情形,此时就需要对这类情形具体甄别,以尽可能保证系统的安全性。考虑到实际应用中,越权访问或恶意访问存在集中性和持续性,而系统的访问监控日志中通常会记录不同用户的访问情况。因此为对恶意访问进行准确的判断,本实施例中过滤器可在权限认证未通过时,将客户端标识作为日志索引从本地预存的监控日志中查找对应的访问记录,然后根据访问记录进一步地判断客户端是否存在恶意访问或越权访问的情况。
步骤S506:根据所述访问记录获取客户端的访问频率以及访问成功率;
在具体实现中,考虑到用户的访问频率以及访问成功率能够较为直观的反映出访问情况,本实施例过滤器可从对应的访问记录中获取客户端的访问频率以及访问成功率,然后根据所述访问成功率以及所述访问频率判断所述客户端是否存在恶意访问情况。
步骤S507:根据所述访问成功率以及所述访问频率判断所述客户端是否存在恶意访问情况;
具体的,本实施例中,过滤器可将访问成功率与预先设定的成功率阈值(例如20%)进行比较,若访问成功率低于该阈值则继续计算所述客户端在预设时段内对目标服务器的访问频率,然后将该访问频率与预先设定的频率阈值(例如30次/分)进行比较,若高于则可判定客户端存在恶意访问情况。当然,本实施例对根据访问成功率以及访问频率判断客户端是否存在恶意访问情况的具体方式不做限制。
步骤S508:若存在,则将所述客户端标识添加至预设访问黑名单。
在具体实现中,过滤器在判定出客户端存在恶意访问情况时,可将客户端标识添加至预设访问黑名单,以禁止该客户端标识对应的客户端后续继续进行恶意访问,提高系统安全性。
本实施例在应用接入请求可信时,提取请求头中携带的客户端标识;根据客户端标识在预先构建的映射关系中查找对应的目标权限类型;检测应用接入请求的请求权限是否属于目标权限类型;若属于则判定权限认证通过,并将应用接入请求发送至目标服务器;若不属于则判定权限认证未通过,并将客户端标识作为日志索引从本地预存的监控日志中查找对应的访问记录;然后根据访问记录获取客户端的访问频率以及访问成功率;再根据访问成功率以及访问频率判断客户端是否存在恶意访问情况;若存在,则将客户端标识添加至预设访问黑名单,提高了权限验证效率,也实现了对恶意访问情况的有效检测。
此外,本发明实施例还提出一种存储介质,所述存储介质上存储有请求认证程序,所述请求认证程序被处理器执行时实现如上文所述的请求认证方法的步骤。
参照图5,图5为本发明请求认证装置第一实施例的结构框图。
如图5所示,本发明实施例提出的请求认证装置包括:
请求拦截模块501,用于在客户端向目标服务器发送应用接入请求时,对所述应用接入请求进行拦截,提取所述应用接入请求的请求头中包含的入参结构数据;
接入检测模块502,用于根据所述入参结构数据检测所述应用接入请求是否为初次接入;
数据读取模块503,用于在所述应用接入请求为初次接入时,从所述入参结构数据中读取请求加密参数;
请求验证模块504,用于基于所述请求加密参数通过预设加密算法验证所述应用接入请求是否可信;
权限认证模块505,用于在所述应用接入请求可信时,对所述应用接入请求进行权限认证,并在认证通过时将所述应用接入请求发送至目标服务器。
本实施例通过在客户端向目标服务器发送应用接入请求时,对应用接入请求进行拦截,提取应用接入请求的请求头中包含的入参结构数据;根据入参结构数据检测应用接入请求是否为初次接入;在应用接入请求为初次接入时,从入参结构数据中读取请求加密参数;基于请求加密参数通过预设加密算法验证应用接入请求是否可信;在应用接入请求可信时,对应用接入请求进行权限认证,并在认证通过时将应用接入请求发送至目标服务器,由于本实施例是通过请求中携带的入参结构数据对请求是否可信进行验证,在请求可信时再对请求进行权限认证,相比于传统的请求认证流程,不会直接将验证接口暴露给客户端,在提高请求认证效率的同时,也保证了系统的安全性与稳定性。
基于本发明上述请求认证装置第一实施例,提出本发明请求认证装置的第二实施例。
在本实施例中,所述接入检测模块502,还用于获取所述应用接入请求对应的请求类型,并判断所述请求类型是否属于预设请求类型;若属于,则检测所述入参结构数据中是否携带身份令牌,若未携带则判定所述应用接入请求为初次接入。
进一步地,所述数据读取模块503,还用于在所述应用接入请求为初次接入时,获取所述入参结构数据对应的数据交换格式;检测所述数据交换格式是否属于预设数据交换格式;若不属于,则根据所述请求头中包含的访问域名确定待访问的目标服务器,并查询所述目标服务器对应的目标数据交换格式;基于所述目标数据交换格式对所述入参结构数据进行格式转换,从转换后的入参结构数据中读取请求加密参数。
进一步地,所述数据读取模块503,还用于将所述目标服务器对应的服务器标识作为键对象;根据所述键对象在预设动态键值对中查找对应的值对象,所述值对象中存放有数据交换格式字段;根据所述数据交换格式字段确定所述目标服务器对应的目标数据交换格式。
进一步地,所述请求验证模块504,还用于读取所述请求加密参数中包含的加密数据串和请求签名数据;提取所述加密数据串中包含的待拼接参数,并按字母顺序对所述待拼接参数进行拼接,获得目标参数;采用预设加密算法计算所述目标参数对应的签名值,将所述签名值与所述请求签名数据中携带的签名值进行比对;根据比对结果判断所述应用接入请求是否可信。
进一步地,所述权限认证模块505,还用于在所述应用接入请求可信时,提取所述请求头中携带的客户端标识;根据所述客户端标识在预先构建的映射关系中查找对应的目标权限类型,所述映射关系中存放有客户端标识和权限类型之间的对应关系;检测所述应用接入请求的请求权限是否属于所述目标权限类型;若属于则判定权限认证通过,并将所述应用接入请求发送至目标服务器。
进一步地,所述权限认证模块505,还用于在所述应用接入请求的请求权限不属于所述目标权限类型时,判定权限认证未通过,并将所述客户端标识作为日志索引从本地预存的监控日志中查找对应的访问记录;根据所述访问记录获取客户端的访问频率以及访问成功率;根据所述访问成功率以及所述访问频率判断所述客户端是否存在恶意访问情况;若存在,则将所述客户端标识添加至预设访问黑名单。
本发明请求认证装置的其他实施例或具体实现方式可参照上述各方法实施例,此处不再赘述。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如只读存储器/随机存取存储器、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (10)
1.一种请求认证方法,其特征在于,所述方法包括:
在客户端向目标服务器发送应用接入请求时,对所述应用接入请求进行拦截,提取所述应用接入请求的请求头中包含的入参结构数据;
根据所述入参结构数据检测所述应用接入请求是否为初次接入;
在所述应用接入请求为初次接入时,从所述入参结构数据中读取请求加密参数;
基于所述请求加密参数通过预设加密算法验证所述应用接入请求是否可信;
在所述应用接入请求可信时,对所述应用接入请求进行权限认证,并在认证通过时将所述应用接入请求发送至目标服务器。
2.如权利要求1所述的方法,其特征在于,所述根据所述入参结构数据检测所述应用接入请求是否为初次接入的步骤之前,所述方法还包括:
获取所述应用接入请求对应的请求类型,并判断所述请求类型是否属于预设请求类型;
若属于,则执行所述根据所述入参结构数据检测所述应用接入请求是否为初次接入的步骤;
所述根据所述入参结构数据检测所述应用接入请求是否为初次接入的步骤,包括:
检测所述入参结构数据中是否携带身份令牌,若未携带则判定所述应用接入请求为初次接入。
3.如权利要求1所述的方法,其特征在于,所述在所述应用接入请求为初次接入时,从所述入参结构数据中读取请求加密参数的步骤,包括:
在所述应用接入请求为初次接入时,获取所述入参结构数据对应的数据交换格式;
检测所述数据交换格式是否属于预设数据交换格式;
若不属于,则根据所述请求头中包含的访问域名确定待访问的目标服务器,并查询所述目标服务器对应的目标数据交换格式;
基于所述目标数据交换格式对所述入参结构数据进行格式转换,从转换后的入参结构数据中读取请求加密参数。
4.如权利要求3所述的方法,其特征在于,所述查询所述目标服务器对应的目标数据交换格式的步骤,包括:
将所述目标服务器对应的服务器标识作为键对象;
根据所述键对象在预设动态键值对中查找对应的值对象,所述值对象中存放有数据交换格式字段;
根据所述数据交换格式字段确定所述目标服务器对应的目标数据交换格式。
5.如权利要求1所述的方法,其特征在于,所述基于所述请求加密参数通过预设加密算法验证所述应用接入请求是否可信的步骤,包括:
读取所述请求加密参数中包含的加密数据串和请求签名数据;
提取所述加密数据串中包含的待拼接参数,并按字母顺序对所述待拼接参数进行拼接,获得目标参数;
采用预设加密算法计算所述目标参数对应的签名值,将所述签名值与所述请求签名数据中携带的签名值进行比对;
根据比对结果判断所述应用接入请求是否可信。
6.如权利要求1至4任一项所述的方法,其特征在于,所述在所述应用接入请求可信时,对所述应用接入请求进行权限认证,并在认证通过时将所述应用接入请求发送至目标服务器的步骤,包括:
在所述应用接入请求可信时,提取所述请求头中携带的客户端标识;
根据所述客户端标识在预先构建的映射关系中查找对应的目标权限类型,所述映射关系中存放有客户端标识和权限类型之间的对应关系;
检测所述应用接入请求的请求权限是否属于所述目标权限类型;
若属于则判定权限认证通过,并将所述应用接入请求发送至目标服务器。
7.如权利要求6所述的方法,其特征在于,所述检测所述应用接入请求的请求权限是否属于所述目标权限类型的步骤之后,所述方法还包括:
若不属于则判定权限认证未通过,并将所述客户端标识作为日志索引从本地预存的监控日志中查找对应的访问记录;
根据所述访问记录获取客户端的访问频率以及访问成功率;
根据所述访问成功率以及所述访问频率判断所述客户端是否存在恶意访问情况;
若存在,则将所述客户端标识添加至预设访问黑名单。
8.一种请求认证装置,其特征在于,所述装置包括:
请求拦截模块,用于在客户端向目标服务器发送应用接入请求时,对所述应用接入请求进行拦截,提取所述应用接入请求的请求头中包含的入参结构数据;
接入检测模块,用于根据所述入参结构数据检测所述应用接入请求是否为初次接入;
数据读取模块,用于在所述应用接入请求为初次接入时,从所述入参结构数据中读取请求加密参数;
请求验证模块,用于基于所述请求加密参数通过预设加密算法验证所述应用接入请求是否可信;
权限认证模块,用于在所述应用接入请求可信时,对所述应用接入请求进行权限认证,并在认证通过时将所述应用接入请求发送至目标服务器。
9.一种请求认证设备,其特征在于,所述设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的请求认证程序,所述请求认证程序配置为实现如权利要求1至7中任一项所述的请求认证方法的步骤。
10.一种存储介质,其特征在于,所述存储介质上存储有请求认证程序,所述请求认证程序被处理器执行时实现如权利要求1至7任一项所述的请求认证方法的步骤。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010009330.2A CN111209582A (zh) | 2020-01-03 | 2020-01-03 | 请求认证方法、装置、设备及存储介质 |
PCT/CN2020/136332 WO2021135918A1 (zh) | 2020-01-03 | 2020-12-15 | 请求认证方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010009330.2A CN111209582A (zh) | 2020-01-03 | 2020-01-03 | 请求认证方法、装置、设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111209582A true CN111209582A (zh) | 2020-05-29 |
Family
ID=70787389
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010009330.2A Pending CN111209582A (zh) | 2020-01-03 | 2020-01-03 | 请求认证方法、装置、设备及存储介质 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN111209582A (zh) |
WO (1) | WO2021135918A1 (zh) |
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112085491A (zh) * | 2020-08-31 | 2020-12-15 | 北京百度网讯科技有限公司 | 计费系统接入方法及云平台、电子设备、计算机可读介质 |
CN112087819A (zh) * | 2020-09-10 | 2020-12-15 | 上海连尚网络科技有限公司 | 一种信息请求方法、设备和计算机可读介质 |
CN112187931A (zh) * | 2020-09-29 | 2021-01-05 | 中国平安财产保险股份有限公司 | 会话管理方法、装置、计算机设备和存储介质 |
CN112311769A (zh) * | 2020-09-29 | 2021-02-02 | 新华三信息安全技术有限公司 | 安全认证的方法、系统、电子设备及介质 |
CN112398824A (zh) * | 2020-11-03 | 2021-02-23 | 珠海格力电器股份有限公司 | 一种权限校验方法、存储介质及电子设备 |
CN112528305A (zh) * | 2020-12-16 | 2021-03-19 | 平安银行股份有限公司 | 访问控制方法、装置、电子设备及存储介质 |
CN112597496A (zh) * | 2020-12-23 | 2021-04-02 | 北京天融信网络安全技术有限公司 | 一种文件信誉鉴定方法、装置及系统 |
CN112910900A (zh) * | 2021-02-03 | 2021-06-04 | 叮当快药科技集团有限公司 | 文件访问控制方法、装置、设备和存储介质 |
WO2021135918A1 (zh) * | 2020-01-03 | 2021-07-08 | 平安科技(深圳)有限公司 | 请求认证方法、装置、设备及存储介质 |
CN113542290A (zh) * | 2021-07-21 | 2021-10-22 | 腾讯科技(深圳)有限公司 | 数据访问请求的处理方法、装置、设备及可读存储介质 |
CN115374415A (zh) * | 2022-10-24 | 2022-11-22 | 中教云智数字科技有限公司 | 一种基于SpringBoot的轻量级权限认证方法及框架 |
CN115460282A (zh) * | 2022-07-29 | 2022-12-09 | 天翼云科技有限公司 | 多服务sdk的远程访问方法及装置 |
CN115529156A (zh) * | 2022-08-08 | 2022-12-27 | 北京雪诺科技有限公司 | 接入认证方法及装置、存储介质、计算机设备 |
CN117216748A (zh) * | 2023-11-09 | 2023-12-12 | 新华三网络信息安全软件有限公司 | 数据访问控制方法、装置、设备及存储介质 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107493250B (zh) * | 2016-06-12 | 2020-08-04 | 阿里巴巴集团控股有限公司 | 一种对网页请求进行鉴权的方法、客户端及服务器 |
US10778668B2 (en) * | 2017-06-02 | 2020-09-15 | Dell Products L.P. | HTTP session validation module |
CN107948201B (zh) * | 2017-12-29 | 2020-11-13 | 平安科技(深圳)有限公司 | Docker镜像仓库的权限认证方法和系统 |
CN109639730A (zh) * | 2019-01-21 | 2019-04-16 | 北京工业大学 | 基于令牌的http无状态协议下信息系统数据接口认证方法 |
CN111209582A (zh) * | 2020-01-03 | 2020-05-29 | 平安科技(深圳)有限公司 | 请求认证方法、装置、设备及存储介质 |
-
2020
- 2020-01-03 CN CN202010009330.2A patent/CN111209582A/zh active Pending
- 2020-12-15 WO PCT/CN2020/136332 patent/WO2021135918A1/zh active Application Filing
Cited By (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2021135918A1 (zh) * | 2020-01-03 | 2021-07-08 | 平安科技(深圳)有限公司 | 请求认证方法、装置、设备及存储介质 |
CN112085491A (zh) * | 2020-08-31 | 2020-12-15 | 北京百度网讯科技有限公司 | 计费系统接入方法及云平台、电子设备、计算机可读介质 |
CN112085491B (zh) * | 2020-08-31 | 2023-08-04 | 北京百度网讯科技有限公司 | 计费系统接入方法及云平台、电子设备、计算机可读介质 |
CN112087819A (zh) * | 2020-09-10 | 2020-12-15 | 上海连尚网络科技有限公司 | 一种信息请求方法、设备和计算机可读介质 |
CN112087819B (zh) * | 2020-09-10 | 2022-05-10 | 上海连尚网络科技有限公司 | 一种信息请求方法、设备和计算机可读介质 |
CN112187931A (zh) * | 2020-09-29 | 2021-01-05 | 中国平安财产保险股份有限公司 | 会话管理方法、装置、计算机设备和存储介质 |
CN112311769A (zh) * | 2020-09-29 | 2021-02-02 | 新华三信息安全技术有限公司 | 安全认证的方法、系统、电子设备及介质 |
CN112398824B (zh) * | 2020-11-03 | 2021-12-14 | 珠海格力电器股份有限公司 | 一种权限校验方法、存储介质及电子设备 |
CN112398824A (zh) * | 2020-11-03 | 2021-02-23 | 珠海格力电器股份有限公司 | 一种权限校验方法、存储介质及电子设备 |
CN112528305A (zh) * | 2020-12-16 | 2021-03-19 | 平安银行股份有限公司 | 访问控制方法、装置、电子设备及存储介质 |
CN112528305B (zh) * | 2020-12-16 | 2023-10-10 | 平安银行股份有限公司 | 访问控制方法、装置、电子设备及存储介质 |
CN112597496A (zh) * | 2020-12-23 | 2021-04-02 | 北京天融信网络安全技术有限公司 | 一种文件信誉鉴定方法、装置及系统 |
CN112597496B (zh) * | 2020-12-23 | 2023-11-10 | 北京天融信网络安全技术有限公司 | 一种文件信誉鉴定方法、装置及系统 |
CN112910900A (zh) * | 2021-02-03 | 2021-06-04 | 叮当快药科技集团有限公司 | 文件访问控制方法、装置、设备和存储介质 |
CN112910900B (zh) * | 2021-02-03 | 2023-04-07 | 叮当快药科技集团有限公司 | 文件访问控制方法、装置、设备和存储介质 |
CN113542290A (zh) * | 2021-07-21 | 2021-10-22 | 腾讯科技(深圳)有限公司 | 数据访问请求的处理方法、装置、设备及可读存储介质 |
CN113542290B (zh) * | 2021-07-21 | 2022-04-05 | 腾讯科技(深圳)有限公司 | 数据访问请求的处理方法、装置、设备及可读存储介质 |
CN115460282A (zh) * | 2022-07-29 | 2022-12-09 | 天翼云科技有限公司 | 多服务sdk的远程访问方法及装置 |
CN115529156A (zh) * | 2022-08-08 | 2022-12-27 | 北京雪诺科技有限公司 | 接入认证方法及装置、存储介质、计算机设备 |
CN115374415A (zh) * | 2022-10-24 | 2022-11-22 | 中教云智数字科技有限公司 | 一种基于SpringBoot的轻量级权限认证方法及框架 |
CN117216748A (zh) * | 2023-11-09 | 2023-12-12 | 新华三网络信息安全软件有限公司 | 数据访问控制方法、装置、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
WO2021135918A1 (zh) | 2021-07-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111209582A (zh) | 请求认证方法、装置、设备及存储介质 | |
US9473568B2 (en) | Detecting code injections through cryptographic methods | |
US10848505B2 (en) | Cyberattack behavior detection method and apparatus | |
CN110365483B (zh) | 云平台认证方法、客户端、中间件及系统 | |
US20140258128A1 (en) | Method for managing fund security and mobile terminal | |
CN101924760A (zh) | 可执行文件的安全下载方法及系统 | |
CN110990335B (zh) | 日志归档方法、装置、设备及计算机可读存储介质 | |
CN110888838A (zh) | 基于对象存储的请求处理方法、装置、设备及存储介质 | |
US20120311700A1 (en) | Information processing apparatus and authentication information migration method | |
CN111460410A (zh) | 服务器登录方法、装置、系统与计算机可读存储介质 | |
CN110943840A (zh) | 一种签名验证方法及系统 | |
US20180039771A1 (en) | Method of and server for authorizing execution of an application on an electronic device | |
CN113626772A (zh) | 一种进程的动态可信度量方法、装置、系统及终端 | |
CN111541743B (zh) | 一种多api集成整合的方法 | |
WO2020233044A1 (zh) | 一种插件校验方法、设备、服务器及计算机可读存储介质 | |
US11893105B2 (en) | Generating and validating activation codes without data persistence | |
CN114422586B (zh) | 事件通知方法、装置、计算机设备及存储介质 | |
CN112765588B (zh) | 一种身份识别方法、装置、电子设备及存储介质 | |
CN112528286B (zh) | 终端设备安全检测方法、关联设备以及计算机程序产品 | |
CN116996238A (zh) | 一种网络异常访问的处理方法以及相关装置 | |
CN113849802A (zh) | 一种设备认证方法、装置、电子设备及存储介质 | |
CN114338060A (zh) | 一种权限校验方法、装置、系统、设备及存储介质 | |
JP2005321928A (ja) | 認証プログラムおよび認証サーバ | |
US11750660B2 (en) | Dynamically updating rules for detecting compromised devices | |
CN114760078B (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 |