CN117439739A - 接口请求的安全防护方法及系统 - Google Patents

接口请求的安全防护方法及系统 Download PDF

Info

Publication number
CN117439739A
CN117439739A CN202311287904.2A CN202311287904A CN117439739A CN 117439739 A CN117439739 A CN 117439739A CN 202311287904 A CN202311287904 A CN 202311287904A CN 117439739 A CN117439739 A CN 117439739A
Authority
CN
China
Prior art keywords
request
interface request
interface
domain name
encryption
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
Application number
CN202311287904.2A
Other languages
English (en)
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.)
China Mobile Communications Group Co Ltd
China Mobile Information Technology Co Ltd
Original Assignee
China Mobile Communications Group Co Ltd
China Mobile Information Technology 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 China Mobile Communications Group Co Ltd, China Mobile Information Technology Co Ltd filed Critical China Mobile Communications Group Co Ltd
Priority to CN202311287904.2A priority Critical patent/CN117439739A/zh
Publication of CN117439739A publication Critical patent/CN117439739A/zh
Pending legal-status Critical Current

Links

Classifications

    • 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/3247Cryptographic 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 digital signatures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/02Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/02Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
    • H04L63/0227Filtering policies
    • H04L63/0236Filtering by address, protocol, port number or service, e.g. IP-address or URL
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • H04L63/101Access control lists [ACL]
    • 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
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/06Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
    • 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/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0643Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
    • 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/40Network security protocols
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D30/00Reducing energy consumption in communication networks
    • Y02D30/50Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate

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)
  • Power Engineering (AREA)
  • Computer And Data Communications (AREA)

Abstract

本发明公开了一种接口请求的安全防护方法及系统,属于安全防护技术领域。本发明接口请求的安全防护方法应用于接口请求代理端,通过对客户端浏览器发送的接口请求进行拦截,并将接口请求重定向到预设代码,得到下载请求;基于下载请求得到根据客户端可信度分析策略生成的预设格式的二进制文件;基于预设格式的二进制文件对接口请求进行加密,得到加密接口请求;将加密接口请求发送至接口请求验证端进行验证,以使接口请求验证端基于加密接口请求进行安全防护,对接口请求进行拦截,并获取根据客户端可信度分析策略生成的二进制文件,通过对接口请求进行加密,从而生成可信数据,确保客户端发送请求的唯一性与不可篡改性,提高安全防护效果。

Description

接口请求的安全防护方法及系统
技术领域
本发明涉及安全防护技术领域,尤其涉及一种接口请求的安全防护方法及系统。
背景技术
现有技术中,WAF(Web Application Firewall,Web应用防火墙)作为最主要的Web应用防护设施,广泛应用于应对各种Web应用安全与攻击防护中。其技术原理是在Web流量到达Web服务器之前,对流量中的业务内容进行扫描和过滤,使用预置正则表达式进行匹配,如果匹配到某Web会话符合限定的规则,该会话就会被判定为恶意请求,并触发相应的防护机制阻止会话流量的转发,反之,Web会话判定为正常请求,并被转发到后端Web服务器。
但WAF的防护效果依赖于特征库,特征库越大,能识别的安全风险越多,但是,可能误匹配到的正常请求也会越多,这就降低了WAF的检测准确率。
发明内容
本发明的主要目的在于提供一种接口请求的安全防护方法及系统,旨在解决现有技术接口请求安全防护效果较差的技术问题。
为实现上述目的,本发明提供了一种接口请求的安全防护方法,所述接口请求的安全防护方法应用于接口请求代理端,所述方法包括以下步骤:
对客户端浏览器发送的接口请求进行拦截,并将所述接口请求重定向到预设代码,得到下载请求;
基于所述下载请求得到预设格式的二进制文件,所述预设格式的二进制文件为根据客户端可信度分析策略生成的;
基于所述预设格式的二进制文件对所述接口请求进行加密,得到加密接口请求;
将所述加密接口请求发送至接口请求验证端进行验证,以使所述接口请求验证端基于所述加密接口请求进行安全防护。
可选地,所述基于所述预设格式的二进制文件对所述接口请求进行加密,得到加密接口请求,包括:
调用所述预设代码中的实例化策略将所述预设格式的二进制文件实例化,得到实例化对象,并将所述实例化对象封装至全局对象;
基于初始对象创建代理对象;
在所述代理对象中调用所述全局对象中的实例化对象对所述接口请求进行加密,得到加密接口请求。
可选地,所述在所述代理对象中调用所述全局对象中的实例化对象对所述接口请求进行加密,得到加密接口请求,包括:
通过所述代理对象得到所述接口请求的请求头、请求体以及请求网址;
将所述请求头、所述请求体以及所述请求网址进行组合,生成字符串;
通过预设哈希算法计算所述字符串的哈希值;
通过随机函数生成随机偏移量;
将所述随机偏移量作为密钥,通过所述密钥对所述哈希值进行加密,得到签名值;
将所述签名值和所述随机偏移量添加到所述接口请求的请求头中,得到加密接口请求。
可选地,所述将所述加密接口请求发送至接口请求验证端进行验证,包括:
获取封装参数;
通过所述封装参数对所述初始对象进行封装,得到更新对象;
通过所述更新对象将所述加密接口请求发送至接口请求验证端进行验证。
此外,为实现上述目的,本发明还提出一种接口请求的安全防护方法,所述接口请求的安全防护方法应用于接口请求验证端,所述方法包括:
在接收到接口请求代理端发送的加密接口请求时,获取预设缓存服务器中的验证信息;
基于所述验证信息对所述加密接口请求进行验证,得到验证结果,其中,所述加密接口请求中包括签名值和随机偏移量;
根据所述验证结果对所述加密接口请求进行合法性判断,实现接口请求的安全防护。
可选地,所述在接收到接口请求代理端发送的加密接口请求时,获取预设缓存服务器中的验证信息,包括:
在接收到接口请求代理端发送的加密接口请求时。从所述接口请求代理端中同步客户端可信度分析策略;
通过所述客户端可信度分析策略对所述加密接口请求进行预处理,得到待验证信息;
根据所述待验证信息得到所述加密接口请求的请求域名;
通过所述请求域名从预设缓存服务器中获取验证信息。
可选地,所述基于所述验证信息对所述加密接口请求进行验证,得到验证结果,包括:
根据所述验证信息得到域名黑名单列表;
将所述请求域名与所述域名黑名单列表进行比对,得到比对结果;
将所述比对结果作为验证结果。
可选地,所述根据所述验证结果对所述加密接口请求进行合法性判断,包括:
在所述验证结果为所述请求域名位于所述域名黑名单列表的情况下,确定所述加密接口请求为不合法请求,阻断所述加密接口请求的访问;
在所述验证结果为所述请求域名不位于所述域名黑名单列表中的情况下,获取所述验证信息中的域名白名单列表;
将所述请求域名与所述域名白名单列表进行比对;
在所述请求域名位于所述域名白名单列表的情况下,确定所述加密接口请求为合法请求。
可选地,所述将所述请求域名与所述域名白名单列表进行比对之后,还包括:
在所述请求域名不位于所述域名白名单列表的情况下,通过所述请求域名从所述验证信息中得到随机偏移量缓存列表;
根据所述待验证信息得到随机偏移量;
将所述随机偏移量与所述随机偏移量缓存列表进行比较;
在所述随机偏移量与所述随机偏移量缓存列表中的第一状态标识对应的数值相同,且所述随机偏移量与所述随机偏移量缓存列表中的第二状态标识对应的数值不相同时,确定所述加密接口请求为合法请求,其中,所述第一状态标识和所述第二状态标识为相反标识。
可选地,所述将所述随机偏移量与所述随机偏移量缓存列表进行比较之后,还包括:
在所述随机偏移量与所述随机偏移量缓存列表中的第二状态标识对应的数值相同时,确定所述加密接口请求为不合法请求,且所述加密接口请求为接口攻击行为。
可选地,所述根据所述验证结果对所述加密接口请求进行合法性判断之后,还包括:
在所述加密接口请求为不合法请求时,阻断所述加密接口请求的访问;
记录所述加密接口请求对应的请求域名的失败访问次数;
在所述请求域名在预设时间内的失败访问次数大于等于预设访问次数阈值时,将所述请求域名添加至域名黑名单列表;
在所述请求域名在预设时间内的失败访问次数小于所述预设访问次数阈值时,将所述失败访问次数和所述请求域名记录至所述预设缓存服务器,并清理过期数据。
可选地,所述根据所述验证结果对所述加密接口请求进行合法性判断之后,还包括:
在所述加密接口请求为不合法请求且不为接口攻击行为时,从所述验证信息中得到配置密钥和配置加密算法;
基于所述配置密钥和所述配置加密算法对所述加密接口请求进行解密,得到预设签名值;
在所述预设签名值与所述加密接口请求中的签名值不一致时,确定所述加密接口请求被篡改,阻断所述加密接口请求的访问;
在所述预设签名值与所述加密接口请求中的签名值一致时,确定所述加密接口请求未被篡改,通过请求域名从所述预设缓存服务器中获取配置的网页地址信息以及负载均衡策略;
将所述加密接口请求按照所述负载均衡策略转发至所述网页地址信息对应的网页服务器,完成请求转发。
此外,为实现上述目的,本发明还提出一种接口请求的安全防护装置,应用于接口请求代理端,所述装置包括:
拦截模块,用于对客户端浏览器发送的接口请求进行拦截,并将所述接口请求重定向到预设代码,得到下载请求;
获取模块,用于基于所述下载请求得到预设格式的二进制文件,所述预设格式的二进制文件为根据客户端可信度分析策略生成的;
加密模块,用于基于所述预设格式的二进制文件对所述接口请求进行加密,得到加密接口请求;
发送模块,用于将所述加密接口请求发送至接口请求验证端进行验证,以使所述接口请求验证端基于所述加密接口请求进行安全防护。
此外,为实现上述目的,本发明还提出一种接口请求的安全防护装置,应用于接口请求验证端,所述装置包括:
接收模块,用于在接收到接口请求代理端发送的加密接口请求时,获取预设缓存服务器中的验证信息;
验证模块,用于基于所述验证信息对所述加密接口请求进行验证,得到验证结果,其中,所述加密接口请求中包括签名值和随机偏移量;
判断模块,用于根据所述验证结果对所述加密接口请求进行合法性判断,实现接口请求的安全防护。
此外,为实现上述目的,本发明还提出一种接口请求的安全防护系统,所述接口请求的安全防护系统包括上文所述的接口请求代理端以及接口请求验证端。
本发明接口请求的安全防护方法应用于接口请求代理端,通过对客户端浏览器发送的接口请求进行拦截,并将接口请求重定向到预设代码,得到下载请求;基于下载请求得到根据客户端可信度分析策略生成的预设格式的二进制文件;基于预设格式的二进制文件对接口请求进行加密,得到加密接口请求;将加密接口请求发送至接口请求验证端进行验证,以使接口请求验证端基于加密接口请求进行安全防护,对接口请求进行拦截,并获取根据客户端可信度分析策略生成的二进制文件,通过对接口请求进行加密,从而生成可信数据,确保客户端发送请求的唯一性与不可篡改性,提高安全防护效果。
附图说明
图1是本发明一实施例的应用于接口请求代理端的接口请求的安全防护方法的流程示意图;
图2为本发明一实施例的应用于接口请求代理端的接口请求的安全防护方法的整体方案的架构示意图;
图3为本发明一实施例的应用于接口请求代理端的接口请求的安全防护方法的两种网页请求的本地化代理流程图;
图4为本发明一实施例的应用于接口请求代理端的接口请求的安全防护方法又一的流程示意图;
图5为本发明一实施例的应用于接口请求代理端的接口请求的安全防护方法接口请求代理端的处理流程示意图;
图6为本发明一实施例的应用于接口请求代理端的接口请求的安全防护方法接口请求代理端进行加密的流程示意图;
图7为本发明一实施例的应用于接口请求验证端的接口请求的安全防护方法的流程示意图;
图8为本发明一实施例的应用于接口请求代理端的接口请求的安全防护方法的又一流程示意图;
图9为本发明一实施例的应用于接口请求代理端的接口请求的安全防护方法的又一流程示意图;
图10为本发明一实施例的应用于接口请求代理端的接口请求的安全防护方法的又一流程示意图;
图11为本发明一实施例的应用于接口请求代理端的接口请求的安全防护方法接口请求验证端的逻辑流程示意图;
图12为本发明一实施例的应用于接口请求代理端的接口请求的安全防护装置的结构框图;
图13为本发明一实施例的应用于接口请求验证端的接口请求的安全防护装置的结构框图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
经研究发现,当前WAF一般不具备Web API(网络应用程序接口)资产识别与管控能力;并且仅仅依赖于网络流量的分析与过滤,很难解决某些Web API攻击(如CC)、Web API滥用等安全问题,目前尚未看到有效应对Web API所面临的解决方案,本申请提出使用可信客户端的防护方法来保障Web服务器所提供的RESTful API(Representational StateTransfer Application Programming Interface,表现层状态转化应用接口)安全。本方案基于以下基本事实即Web页面中的API接口大多是对互联网完全开放的,任何用户均可以通过人员(包括正常用户与恶意用户)、爬虫、恶意扫描工具、恶意软件等方式直接或间接地进行访问,这些来自互联网的访问请求都应该假定为不安全的,需要对其进行检测后确定是否恶意请求。但如果我们可以判定哪些客户端浏览器发送的请求是可信的,哪些不是可信的,那我们就可以直接拒绝所有非可信客户端的Web请求。因此,通过可信客户端浏览器来防护非法Web API请求的攻击,是一种高可靠、低成本的安全防护方案。
参照图1,图1为本发明一实施例的应用于接口请求代理端的接口请求的安全防护方法的流程示意图,该方法应用于接口请求代理端,所述方法包括:
步骤S10:对客户端浏览器发送的接口请求进行拦截,并将所述接口请求重定向到预设代码,得到下载请求。
需要说明的是,本实施例的接口请求安全防护主要以RESTful API为代表的API服务方式,还可为其他形式的接口请求防护,本实施例对此不作限制。
需要说明的是,如图2所示,图2为一实施例中整体方案的架构示意图,分为四个模块,包括客户端浏览器、接口请求代理端、接口请求验证端以及接口服务端,客户端浏览器可进行API请求准备,并进行API请求代理操作以及API请求发送,API请求代理端主要对网页接口会话(HTTP协议)进行解析,处理初始访问页面,并植入JavaScript,根据策略生成WebAssembly文件,并下发给客户端浏览器,从而通过客户端浏览器进行API请求代理操作,将接口请求转发至接口请求验证端,接口请求验证端对接收到的接口请求进行解密,并通过客户端可信度分析策略对接口请求进行检测识别,具体为从Redis服务器中得到随机偏移量、黑白名单等数据缓存进行接口请求验证,将检测的验证结果发送至接口请求代理端,接口请求代理端将验证结果转发至接口服务端或阻断接口请求,接口服务端包括有多个网页接口服务器,可接收多个接口请求。本方案无需修改web服务器端代码,仅通过设计的接口请求代理端以及接口请求验证端进行简单部署与配置,即可实现客户端可信度检测。
在具体实施中,首先可通过客户端浏览器对RESTful API访问页面进行初始化,在RESTful API访问页面初始化完成后,通过接口请求代理端实时拦截接口请求数据,从而对接口请求进行处理,具体为将接口请求重定向到预设代码,预设代码为特别构造的JavaScript代码,然后客户端浏览器可执行该JavaScript代码,并向目标地址发送网络请求,从而生成下载请求。
步骤S20:基于所述下载请求得到预设格式的二进制文件,所述预设格式的二进制文件为根据客户端可信度分析策略生成的。
应理解的是,客户端浏览器可根据下载请求下载预设格式的二进制文件,预设格式的二进制文件为WebAssembly二进制文件,WebAssembly二进制文件是根据客户端可信度分析策略动态生成的,客户端可信度分析策略可自行配置。
步骤S30:基于所述预设格式的二进制文件对所述接口请求进行加密,得到加密接口请求。
需要说明的是,可基于WebAssembly二进制文件对接口请求进行加密,WebAssembly二进制文件浏览器本地获取客户端可信度分析所需数据,从而对接口请求进行加密,得到加密接口请求,加密接口请求中包括有签名信息以及随机偏移量等数据。
加密方法可使用SM1、AES或类似加密方法,从而在接口请求发出之前在客户端对接口请求内容进行加密,确保客户端发送请求的唯一性与不可篡改性。
步骤S40:将所述加密接口请求发送至接口请求验证端进行验证,以使所述接口请求验证端基于所述加密接口请求进行安全防护。
应理解的是,在完成接口请求的加密后,可将加密接口请求发送至接口请求验证端进行验证,从而确定接口请求是否合法、请求是否被篡改等,从而可通过接口请求验证端根据验证结果进行对应的安全防护。
当前主流浏览器一般都遵循W3C(World Wide Web Consortium,网际网路联盟)规范。按照W3C规范,所有Web API的技术实现方式须遵守统一的定义。基于此前提,如果基于Web API规范流程,针对Web API网络请求实现一个本地化的代理程序,对Web API进行拦截,并修改其内容,则可做到对所有主流浏览器的适配。
接口请求代理端需要直路部署,串接在Web API请求流量中,以便对Web API服务页面进行在线处理。因此,API请求代理端可部署在以下位置:
(1)部署在Web API服务器上。此种部署场景下,API请求代理端在服务器接收到API请求之前即提前拦截到Web API请求流量,进行实时处理,实现各项代理功能;
(2)部署在API网关上。此种部署场景下,API请求代理端利用API网关接收到API请求,在API网关调用转发功能之前,进行实时处理,实现各项代理功能;
(3)部署在WAF(Web应用防火墙)或者NGFW(Next Generation Firewall,下一代防火墙)等具备安全网关功能的安全设备上。此种部署场景下,API请求代理端利用安全网关的相关功能,接收到API请求,在安全网关调用转发功能之前,进行实时处理,实现各项代理功能。
根据W3C规范,所有浏览器最多给开发者提供2种方式进行自定义网络请求,即Ajax与Fetch。根据这两种自定义网络请求的方式,Web请求的本地化代理流程可设计如图3所示,图3为两种网页请求的本地化代理流程图,浏览器的类型包括有Edge、Firefox、Chorme、Safari、360浏览器、QQ浏览器等,将不同的浏览器类型处理为同一的类库类型,例如JQuery、ExtJS、AxoJS、AngularJS、React等,具体包括两种自定义的网络请求方式,Ajax与Fetch,从而将数据传输至接口请求代理端,并通过接口请求代理端处理后传输至接口请求验证端。为此,本申请的方案是对这两种接口进行重写,在用户调用Ajax、Fetch之前先调用请求代理端,对请求进行修改处理后再发送到请求数据验证端,通过验证后再转发给WebAPI服务器。考虑到请求代理端的运行安全性,如果使用JavaScript代码实现请求代理的处理逻辑,则导致JavaScript代码暴露在网页中,代码对用户可见,并且可在客户端进行调试,存在较大安全风险。为确保客户端运行请求代理端的代码的安全性,本方案中引进WebAssembly技术来实现请求代理功能。WebAssembly是一种全新的Web编码方式,具有特定的二进制格式,可以接近原生的性能运行,支持C/C++等主流编程语言,使其编译后的目标代码可以在Web上运行,并能与JavaScript协同工作。WebAssembly代码可以在现代网络浏览器中运行,用户只需在浏览器端下载其二进制文件。WebAssembly代码的不可调试性可以提升API请求代理模块代码的安全性。
本实施例接口请求的安全防护方法应用于接口请求代理端,通过对客户端浏览器发送的接口请求进行拦截,并将接口请求重定向到预设代码,得到下载请求;基于下载请求得到根据客户端可信度分析策略生成的预设格式的二进制文件;基于预设格式的二进制文件对接口请求进行加密,得到加密接口请求;将加密接口请求发送至接口请求验证端进行验证,以使接口请求验证端基于加密接口请求进行安全防护,对接口请求进行拦截,并获取根据客户端可信度分析策略生成的二进制文件,通过对接口请求进行加密,从而生成可信数据,确保客户端发送请求的唯一性与不可篡改性,提高安全防护效果。
参考图4,图4为应用于接口请求代理端的接口请求的安全防护方法又一的流程示意图,该方法应用于接口请求代理端,所述接口请求的安全防护方法步骤S30,包括:
步骤S301:调用所述预设代码中的实例化策略将所述预设格式的二进制文件实例化,得到实例化对象,并将所述实例化对象封装至全局对象。
需要说明的是,可调用JavaScript代码中的实例化策略将WebAssembly二进制文件实例化,实例化策略为WebAssembly.instantiate()方法,还可为其他可进行实例化的策略,本实施例对此不作限制,通过将WebAssembly二进制文件实例化,可得到实例化对象,并将实例化对象装载到全局对象中,方便后续的代码调用。
步骤S302:基于初始对象创建代理对象。
在具体实施中,可针对初始对象创建代理对象,初始对象包括Ajax对象与Fetch对象。通过创建代理对象处理Ajax或Fetch请求,可通过使用JavaScript创建。代理对象可以用于添加拦截、修改请求、添加身份验证等功能。
步骤S303:在所述代理对象中调用所述全局对象中的实例化对象对所述接口请求进行加密,得到加密接口请求。
需要说明的是,在创建代理对象后,可在代理对象中调用全局对象中的WebAssembly实例化对象,从而对接口请求进行加密,得到加密请求。
如图5所示,图5为接口请求代理端的处理流程示意图,首先接口请求代理端拦截客户端浏览器发送的网页接口请求数据,并加载特别构造的JavaScript代码,将网页接口请求重定向到特别构造的JavaScript代码,使客户端浏览器执行该JavaScript代码,向目标地址发送网络请求,下载根据“客户端可信度分析策略”生成的WebAssembly二进制文件,接口请求代理端请求WebAssembly二进制文件,从而将WebAssembly二进制文件下载到本地浏览器中,调用JavaScript中的WebAssembly.instantiate()方法,将WebAssembly文件实例化,并将实例装载到全局对象中,准备由后面的代码调用,并创建代理对象,接口请求发起,在代理对象中调用WebAssembly实例化对象加密接口请求数据,并调用已经封装好的新的对象替换原始的Ajax或Fetch对象发送加密接口请求,将加密接口请求发送至接口请求验证端,从而通过接口请求验证端进行验证,在验证通过时,将接口请求发送至API服务器,验证失败,则结束,不需要在客户端安装软件,实现了对用户透明、不影响客户端体验的效果。
可选地,进行加密的过程具体包括:通过所述代理对象得到所述接口请求的请求头、请求体以及请求网址;将所述请求头、所述请求体以及所述请求网址进行组合,生成字符串;通过预设哈希算法计算所述字符串的哈希值;通过随机函数生成随机偏移量;将所述随机偏移量作为密钥,通过所述密钥对所述哈希值进行加密,得到签名值;将所述签名值和所述随机偏移量添加到所述接口请求的请求头中,得到加密接口请求。
应理解的是,可通过在代理对象中取出接口请求的请求头、请求体以及请求网址(URL)等数据,并将数据按照特定的格式进行组合,从而生成一个字符串。
预设哈希算法可为MD5算法(Message Digest Algorithm 5,消息摘要算法第五版),还可为其他哈希算法,本实施例对此不作限制,通过MD5算法计算字符串的哈希值,并使用随机函数生成一个128位的字符串,按照一定的规则取出16位作为随机偏移量,并将生成的随机偏移量存储在Redis缓存服务器中,状态标识为“New”,以便后续进行唯一性比对。通过将随机偏移量作为密钥,使用SM1、AES(CBC模式)或类似加密算法和密钥对生成的哈希值进行加密,得到加密字符串,该加密字符串即为签名值,并将签名值和随机偏移量一起追加到HRRP接口请求的请求头中,从而得到加密请求。
可选地,将所述加密接口请求发送至接口请求验证端进行验证的步骤具体包括:获取封装参数;通过所述封装参数对所述初始对象进行封装,得到更新对象;通过所述更新对象将所述加密接口请求发送至接口请求验证端进行验证。
在具体实施中,封装参数可根据需求进行设置,从而使用封装参数对初始对象进行封装,从而得到更新对象,即已经封装好的新的对象,将已经封装好的新的对象替换原始的Ajax或Fetch对象,从而使用更新对象将加密接口请求发送至接口请求验证端,此后发送给Web API服务器的所有接口请求均被加密保护。
如图6所示,图6为接口请求代理端进行加密的流程示意图,可使用new.Proxy构造函数为window.Fetch赋值,使用Proxy构造函数来拦截fetch函数的调用。在拦截函数中,可以修改请求选项,例如在请求头中添加自定义标识。然后,调用原始的fetch函数来发起请求,通过获取接口请求,并按照一定规则组装成字符串,使用MD5算法计算字符串的哈希值,并使用随机函数生成一个128位的字符串,按照一定的规则取出16位作为随机偏移量,并将随机偏移量作为密钥,使用加密算法以及密钥对哈希值进行加密,得到加密字符串,即签名值,并将签名值和随机偏移量一起追加到HTTP接口请求中,将已封装好的新的对象替换原始的Ajax或Fetch对象,调用新的对象将加密接口请求发送到接口请求验证端。
本实施例通过调用所述预设代码中的实例化策略将所述预设格式的二进制文件实例化,得到实例化对象,并将所述实例化对象封装至全局对象;基于初始对象创建代理对象;在所述代理对象中调用所述全局对象中的实例化对象对所述接口请求进行加密,得到加密接口请求,通过对接口请求进行加密,对接口请求的访问生成可信信息,确保客户端发送的接口请求的唯一性与不可篡改性,提高接口请求的安全传输。
相应地,参考图7,图7为本发明一实施例的应用于接口请求验证端的接口请求的安全防护方法的流程示意图,该方法应用于接口请求验证端,所述方法包括:
步骤S50:在接收到接口请求代理端发送的加密接口请求时,获取预设缓存服务器中的验证信息。
需要说明的是,接口请求验证端不需要直路部署,可以部署在接口请求代理端可访问到的网络环境中。接口请求验证端可以部署在API网关、Web API服务器端,也可以是集成了本技术方案的WAF或NGFW设备,接口请求验证端提供客户端可信度分析策略同步功能,对客户端需采集的可信度分析数据、加密方法进行设置,动态生成需下发的WebAssembly二进制文件。
在接口请求验证端中可以判断加密接口请求是否在API阻断列表、允许列表中,可以判断随机偏移量是否被使用过,可以判断请求是否被篡改过,通过这些校验过程可以保护服务器的安全。此外,该接口请求验证端提供数据缓存功能,使用者可以在缓存中配置IP黑名单列表、IP白名单列表以及随机偏移量缓存列表,提供各类信息的存取服务,缓存功能可基于Redis缓存服务器或其余缓存库实现,接口请求验证模块还可实现错误页面缓存、密钥数据缓存、随机偏移量失效时间缓存、哈希算法、加密算法缓存、服务器域名缓存等功能。
在具体实施中,当接口请求验证端在接收到接口请求代理端发送的加密接口请求时,可获取预设缓存服务器中的验证信息,预设缓存服务器可为Redis缓存服务器,验证信息为Redis缓存服务器中存储的可对接收到的加密接口请求中的内容进行验证的信息,验证信息可包括域名黑白名单列表、随机偏移量缓存列表等。
步骤S60:基于所述验证信息对所述加密接口请求进行验证,得到验证结果,其中,所述加密接口请求中包括签名值和随机偏移量。
应理解的是,可通过验证信息对加密接口请求中的内容进行验证,从而得到验证结果,验证结果可包括加密接口请求中的内容与验证信息比对的结果,例如比对一致或比对不一致。加密接口请求中包括有签名值、随机偏移量,还包括有请求域名等。
步骤S70:根据所述验证结果对所述加密接口请求进行合法性判断,实现接口请求的安全防护。
在具体实施中,可通过验证结果确定加密接口请求是否合法,例如将加密接口请求中的签名值与验证信息中签名值进行比对,比对不一致,则确定加密接口请求为不合法请求,若比对一致,则确定加密接口请求为合法请求,从而可针对加密接口请求的合法性采取对应的措施,若加密接口请求不合法,则阻断此加密接口请求,若加密接口请求合法,将加密接口请求转发至API服务器,从而实现接口请求的安全防护。在进行合法性判断时,不使用特征库或正则表达式描述的规则库,不会出现规则数量不断增加之后的WAF检测率下降问题,实现了高安全环境下的API安全防护。
本实施例在接收到接口请求代理端发送的加密接口请求时,获取预设缓存服务器中的验证信息;基于所述验证信息对所述加密接口请求进行验证,得到验证结果,其中,所述加密接口请求中包括签名值和随机偏移量;根据所述验证结果对所述加密接口请求进行合法性判断,实现接口请求的安全防护,通过部署接口请求验证端进行加密接口请求的合法性判断,可快速确定客户端发送的请求是否可信,可直接拒绝不可信的客户端请求,实现对非法接口请求的过滤,提高安全防护效果。
在一实施例中,图8示出了根据本发明一实施例的应用于接口请求代理端的接口请求的安全防护方法的又一流程示意图,该方法应用于接口请求代理端,方法中步骤S50包括:
步骤S501:在接收到接口请求代理端发送的加密接口请求时,从所述接口请求代理端中同步客户端可信度分析策略。
应理解的是,在接口请求验证端接收到加密接口请求后,先从接口请求代理端同步目前系统所用的客户端可信度分析策略。
步骤S502:通过所述客户端可信度分析策略对所述加密接口请求进行预处理,得到待验证信息。
在具体实施中,在得到客户端可信度分析策略后,可根据客户端可信度分析策略对加密接口请求进行预处理,从而获取加密接口请求中包含的各个数据内容,即待验证信息。
步骤S503:根据所述待验证信息得到所述加密接口请求的请求域名。
待验证信息中包括有加密接口请求的请求域名、签名值以及偏移量等,因此可根据待验证信息得到加密接口请求的请求域名。
步骤S504:通过所述请求域名从预设缓存服务器中获取验证信息。
在具体实施中,可使用该请求域名从预设缓存服务器中获取验证信息,例如获取域名黑名单列表,从而通过请求域名和域名黑名单列表进行合法性判断。
本实施例在接收到接口请求代理端发送的加密接口请求时,从所述接口请求代理端中同步客户端可信度分析策略;通过所述客户端可信度分析策略对所述加密接口请求进行预处理,得到待验证信息;根据所述待验证信息得到所述加密接口请求的请求域名;通过所述请求域名从预设缓存服务器中获取验证信息,可将客户端可信度分析策略进行同步,从而快速得到加密接口请求的待验证信息,提高验证效率。
作为一种示例,图9示出了根据本发明一实施例的应用于接口请求代理端的接口请求的安全防护方法的又一流程示意图,该方法应用于接口请求代理端,方法中步骤S60包括:
步骤S601:根据所述验证信息得到域名黑名单列表。
需要说明的是,可根据验证信息得到提前缓存的域名黑名单列表,域名黑名单列表为可能存在攻击的访问请求对应的域名。
步骤S602:将所述请求域名与所述域名黑名单列表进行比对,得到比对结果。
在具体实施中,可将请求域名与域名黑名单列表进行比对,如果发现该域名在域名黑名单列表中命中,则说明该请求域名是不允许访问Web API服务资源,则直接阻断访问。
步骤S603:将所述比对结果作为验证结果。
在具体实施中,可将比对结果作为加密接口请求的验证结果。
本实施例根据所述验证信息得到域名黑名单列表;将所述请求域名与所述域名黑名单列表进行比对,得到比对结果;将所述比对结果作为验证结果,可快速根据域名黑名单列表得到访问域名的比对结果。
作为一种示例,图10示出了根据本发明一实施例的应用于接口请求代理端的接口请求的安全防护方法的又一流程示意图,该方法应用于接口请求代理端,方法中步骤S70包括:
步骤S701:在所述验证结果为所述请求域名位于所述域名黑名单列表的情况下,确定所述加密接口请求为不合法请求,阻断所述加密接口请求的访问。
在具体实施中,当验证结果为请求域名位于域名黑名单列表时,即说明该IP是不允许访问Web API服务资源,即该加密接口请求为不合法请求,则直接阻断访问。
步骤S702:在所述验证结果为所述请求域名不位于所述域名黑名单列表中的情况下,获取所述验证信息中的域名白名单列表。
在具体实施中,当请求域名不位于域名黑名单列表中时,需检测请求域名是否位于域名白名单列表,则从验证信息中获取域名白名单列表。
步骤S703:将所述请求域名与所述域名白名单列表进行比对。
应理解的是,通过将请求域名与域名白名单列表中的各个域名进行比对,得到比对结果。
步骤S704:在所述请求域名位于所述域名白名单列表的情况下,确定所述加密接口请求为合法请求。
需要说明的是,若发现请求域名在域名白名单列表中存在,则说明客户端可以安全访问,将加密接口请求作为合法请求,不需要进一步的安全验证,因此可以直接将请求转发到Web API服务器。
可选地,将所述请求域名与所述域名白名单列表进行比对之后,还包括:在所述请求域名不位于所述域名白名单列表的情况下,通过所述请求域名从所述验证信息中得到随机偏移量缓存列表;根据所述待验证信息得到随机偏移量;将所述随机偏移量与所述随机偏移量缓存列表进行比较。
在具体实施中,若请求域名既不位于域名黑名单列表,也不位于域名白名单列表,则接口请求验证端使用请求域名通过从验证信息中获取缓存的随机偏移量缓存列表,并从待验证信息中获取随机偏移量,将随机偏移量与随机偏移量缓存列表进行比较。
在所述随机偏移量与所述随机偏移量缓存列表中的第一状态标识对应的数值相同,且所述随机偏移量与所述随机偏移量缓存列表中的第二状态标识对应的数值不相同时,确定所述加密接口请求为合法请求,其中,所述第一状态标识和所述第二状态标识为相反标识。
需要说明的是,随机偏移量缓存列表中每个随机偏移量都有状态标识,第一状态标识为“New”,第二状态标识为“Used”,接口请求代理端发送的加密接口请求中的随机偏移量在生成之后的状态标识为“New”,因此若随机偏移量的状态标识与随机偏移量列表中是第一状态标识为“New”的数值相同,且与随机偏移量列表中第二状态标识为“Used”的数值都不相同,则说明该加密接口请求合法,允许访问,同时,将对应的随机偏移量状态修改为“Used”。
可选地,在所述随机偏移量与所述随机偏移量缓存列表中的第二状态标识对应的数值相同时,确定所述加密接口请求为不合法请求,且所述加密接口请求为接口攻击行为。
需要说明的是,若随机偏移量与随机偏移量缓存列表中的第二状态标识“Used”对应的数值相同,说明该随机偏移量已被接口请求代理端在之前的Web API请求头中使用过,即包含该随机偏移量的加密接口请求已经发生过,据此,可以判定当前的加密接口请求中包含了篡改数据,为不合法请求,可判定为某种Web API攻击,触发针对当前的加密接口请求的阻断动作。
本实施例在所述验证结果为所述请求域名位于所述域名黑名单列表的情况下,确定所述加密接口请求为不合法请求,阻断所述加密接口请求的访问;在所述验证结果为所述请求域名不位于所述域名黑名单列表中的情况下,获取所述验证信息中的域名白名单列表;将所述请求域名与所述域名白名单列表进行比对;在所述请求域名位于所述域名白名单列表的情况下,确定所述加密接口请求为合法请求,可快速根据预设缓存服务器中缓存的验证信息对请求域名进行验证,快速确定加密接口请求的合法性。
作为一种示例,在根据验证结果对加密接口请求进行合法性判断之后,若加密接口请求为不合法请求,则拒绝此加密接口请求的访问,在加密接口请求被拒绝访问之后,可将加密接口请求的访问域名和失败访问记录到Redis缓存中,因此,在步骤S70之后,还包括:
在所述加密接口请求为不合法请求时,阻断所述加密接口请求的访问;
记录所述加密接口请求对应的请求域名的失败访问次数;
在所述请求域名在预设时间内的失败访问次数大于等于预设访问次数阈值时,将所述请求域名添加至域名黑名单列表;
在所述请求域名在预设时间内的失败访问次数小于所述预设访问次数阈值时,将所述失败访问次数和所述请求域名记录至所述预设缓存服务器,并清理过期数据。
应理解的是,请求域名的失败访问次数可根据加密接口请求被阻断访问的次数进行统计得到,并提前设置预设时间,例如60s、120s等,统计预设时间内请求域名对应的请求的失败访问次数,预设访问次数阈值为拒绝访问次数的最大值,可设置为10次、15次等,若在预设时间内请求域名的失败访问次数达到了预设访问次数阈值的上限或超过了预设访问次数阈值,则说明该请求域名为高危IP,则将此请求域名加入域名黑名单列表中,下次直接阻断该请求域名的访问行为。若请求域名在预设时间内的失败访问次数小于预设访问次数阈值,则记录该失败访问次数以及请求域名至预设缓存服务器,并清理国企数据,在接口请求验证模块阻断每一次请求后,均从Redis缓存服务器中获取错误页面返回给请求者。
在一实施例中,在步骤S70之后,还包括:
在所述加密接口请求为不合法请求且不为接口攻击行为时,从所述验证信息中得到配置密钥和配置加密算法;
基于所述配置密钥和所述配置加密算法对所述加密接口请求进行解密,得到预设签名值;
在所述预设签名值与所述加密接口请求中的签名值不一致时,确定所述加密接口请求被篡改,阻断所述加密接口请求的访问;
在所述预设签名值与所述加密接口请求中的签名值一致时,确定所述加密接口请求未被篡改,通过请求域名从所述预设缓存服务器中获取配置的网页地址信息以及负载均衡策略;
将所述加密接口请求按照所述负载均衡策略转发至所述网页地址信息对应的网页服务器,完成请求转发。
需要说明的是,如果判定加密接口请求为非法请求但不为接口攻击行为时,则可使用该请求域名从验证信息中获取管理员配置的密钥和管理员提前配置的加密算法,从而可验证该加密接口请求是否被篡改,具体可通过配置密钥和配置加密算法对加密接口请求进行解密,得到解密后的签名值,即预设签名值。
通过将加密接口请求中的签名值与预设签名值进行比较,确定签名值是否匹配,在预设签名值与加密接口请求中的签名值不一致时,说明该加密接口请求被篡改,直接拒绝访问,若预设签名值与加密接口请求中的签名值一致,则说明加密接口请求未被篡改,可使用该请求域名从预设缓存服务器中获取配置的网页地址信息以及负载均衡策略,并对加密接口请求进行安全验证,在加密接口请求安全验证通过后,按照配置的负载均衡策略将加密接口请求转发到网页地址信息对应的网页服务器,完成请求的转发。
如图11所示,图11为接口请求验证端的逻辑流程示意图,在接收到加密接口请求后,先从接口请求代理端中同步客户端可信度分析策略,并获取加密接口请求中的请求域名,通过从Redis缓存服务器中获取IP黑名单列表缓存数据,确定请求域名是否在IP黑名单中,若请求域名在IP黑名单列表中,则拒绝访问,若请求域名不在IP黑名单列表中,则从Redis缓存服务器中获取IP白名单列表缓存数据,确定请求域名是否在IP白名单列表中,若请求域名在IP白名单列表中,则获取Web API服务器IP地址,将加密接口请求进行转发,若请求域名不在IP白名单列表中,则从Redis缓存服务器中获取随机偏移量以及失效时间,检测偏移量是否被使用过,若偏移量被使用过,则拒绝访问,若偏移量未被使用过,则从Redis缓存服务器中获取加密算法和密钥进行解密,确定请求是否被篡改过,若请求被篡改过,则拒绝访问,若请求未被篡改过,则获取Web API服务器IP地址,将加密接口请求进行转发。
参照图12,图12为本发明一实施例的应用于接口请求代理端的接口请求的安全防护装置100的结构框图,该装置100包括:
拦截模块110,用于对客户端浏览器发送的接口请求进行拦截,并将所述接口请求重定向到预设代码,得到下载请求。
获取模块120,用于基于所述下载请求得到根据客户端可信度分析策略生成的预设格式的二进制文件。
加密模块130,用于基于所述预设格式的二进制文件对所述接口请求进行加密,得到加密接口请求。
发送模块140,用于将所述加密接口请求发送至接口请求验证端进行验证,以使所述接口请求验证端基于所述加密接口请求进行安全防护。
本实施例通过对客户端浏览器发送的接口请求进行拦截,并将接口请求重定向到预设代码,得到下载请求;基于下载请求得到根据客户端可信度分析策略生成的预设格式的二进制文件;基于预设格式的二进制文件对接口请求进行加密,得到加密接口请求;将加密接口请求发送至接口请求验证端进行验证,以使接口请求验证端基于加密接口请求进行安全防护,对接口请求进行拦截,并获取根据客户端可信度分析策略生成的二进制文件,通过对接口请求进行加密,从而生成可信数据,确保客户端发送请求的唯一性与不可篡改性,提高安全防护效果。
在一个可选实施例中,所述加密模块130,还用于调用所述预设代码中的实例化策略将所述预设格式的二进制文件实例化,得到实例化对象,并将所述实例化对象封装至全局对象;基于初始对象创建代理对象;在所述代理对象中调用所述全局对象中的实例化对象对所述接口请求进行加密,得到加密接口请求。
在一个可选实施例中,所述加密模块130,还用于通过所述代理对象得到所述接口请求的请求头、请求体以及请求网址;将所述请求头、所述请求体以及所述请求网址进行组合,生成字符串;通过预设哈希算法计算所述字符串的哈希值;通过随机函数生成随机偏移量;将所述随机偏移量作为密钥,通过所述密钥对所述哈希值进行加密,得到签名值;将所述签名值和所述随机偏移量添加到所述接口请求的请求头中,得到加密接口请求。
在一个可选实施例中,所述发送模块140,还用于获取封装参数;通过所述封装参数对所述初始对象进行封装,得到更新对象;通过所述更新对象将所述加密接口请求发送至接口请求验证端进行验证。
相应地,本发明实施例还提供了一种应用于接口请求验证端的接口请求的安全防护装置,参照图13,应用于接口请求验证端的接口请求安全防护装置200包括:
接收模块210,用于在接收到接口请求代理端发送的加密接口请求时,获取预设缓存服务器中的验证信息。
验证模块220,用于基于所述验证信息对所述加密接口请求进行验证,得到验证结果,其中,所述加密接口请求中包括签名值和随机偏移量。
判断模块230,用于根据所述验证结果对所述加密接口请求进行合法性判断,实现接口请求的安全防护。
本实施例在接收到接口请求代理端发送的加密接口请求时,获取预设缓存服务器中的验证信息;基于所述验证信息对所述加密接口请求进行验证,得到验证结果,其中,所述加密接口请求中包括签名值和随机偏移量;根据所述验证结果对所述加密接口请求进行合法性判断,实现接口请求的安全防护,通过部署接口请求验证端进行加密接口请求的合法性判断,可快速确定客户端发送的请求是否可信,可直接拒绝不可信的客户端请求,实现对非法接口请求的过滤,提高安全防护效果。
在一个可选实施例中,所述接收模块210,还用于在接收到接口请求代理端发送的加密接口请求时,从所述接口请求代理端中同步客户端可信度分析策略;通过所述客户端可信度分析策略对所述加密接口请求进行预处理,得到待验证信息;根据所述待验证信息得到所述加密接口请求的请求域名;通过所述请求域名从预设缓存服务器中获取验证信息。
在一个可选实施例中,所述验证模块220,还用于根据所述验证信息得到域名黑名单列表;将所述请求域名与所述域名黑名单列表进行比对,得到比对结果;将所述比对结果作为验证结果。
在一个可选实施例中,所述判断模块230,还用于在所述验证结果为所述请求域名位于所述域名黑名单列表的情况下,确定所述加密接口请求为不合法请求,阻断所述加密接口请求的访问;在所述验证结果为所述请求域名不位于所述域名黑名单列表中的情况下,获取所述验证信息中的域名白名单列表;将所述请求域名与所述域名白名单列表进行比对;在所述请求域名位于所述域名白名单列表的情况下,确定所述加密接口请求为合法请求。
在一个可选实施例中,所述判断模块230,还用于在所述请求域名不位于所述域名白名单列表的情况下,通过所述请求域名从所述验证信息中得到随机偏移量缓存列表;根据所述待验证信息得到随机偏移量;将所述随机偏移量与所述随机偏移量缓存列表进行比较;在所述随机偏移量与所述随机偏移量缓存列表中的第一状态标识对应的数值相同,且所述随机偏移量与所述随机偏移量缓存列表中的第二状态标识对应的数值不相同时,确定所述加密接口请求为合法请求,其中,所述第一状态标识和所述第二状态标识为相反标识。
在一个可选实施例中,所述判断模块230,还用于在所述随机偏移量与所述随机偏移量缓存列表中的第二状态标识对应的数值相同时,确定所述加密接口请求为不合法请求,且所述加密接口请求为接口攻击行为。
在一个可选实施例中,所述判断模块230,还用于在所述加密接口请求为不合法请求时,阻断所述加密接口请求的访问;记录所述加密接口请求对应的请求域名的失败访问次数;在所述请求域名在预设时间内的失败访问次数大于等于预设访问次数阈值时,将所述请求域名添加至域名黑名单列表;在所述请求域名在预设时间内的失败访问次数小于所述预设访问次数阈值时,将所述失败访问次数和所述请求域名记录至所述预设缓存服务器,并清理过期数据。
在一个可选实施例中,所述判断模块230,还用于在所述加密接口请求为不合法请求且不为接口攻击行为时,从所述验证信息中得到配置密钥和配置加密算法;基于所述配置密钥和所述配置加密算法对所述加密接口请求进行解密,得到预设签名值;在所述预设签名值与所述加密接口请求中的签名值不一致时,确定所述加密接口请求被篡改,阻断所述加密接口请求的访问;在所述预设签名值与所述加密接口请求中的签名值一致时,确定所述加密接口请求未被篡改,通过请求域名从所述预设缓存服务器中获取配置的网页地址信息以及负载均衡策略;将所述加密接口请求按照所述负载均衡策略转发至所述网页地址信息对应的网页服务器,完成请求转发。
此外,为实现上述目的,本发明还提出一种接口请求的安全防护系统,所述接口请求的安全防护系统包括上文所述的接口请求代理端和接口请求验证端。
由于本接口请求的安全防护系统采用了上述所有实施例的全部技术方案,因此至少具有上述实施例的技术方案所带来的所有有益效果,在此不再一一赘述。
应当理解的是,以上仅为举例说明,对本发明的技术方案并不构成任何限定,在具体应用中,本领域的技术人员可以根据需要进行设置,本发明对此不做限制。
需要说明的是,以上所描述的工作流程仅仅是示意性的,并不对本发明的保护范围构成限定,在实际应用中,本领域的技术人员可以根据实际的需要选择其中的部分或者全部来实现本实施例方案的目的,此处不做限制。
另外,未在本实施例中详尽描述的技术细节,可参见本发明任意实施例所提供的接口请求的安全防护方法,此处不再赘述。
此外,需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如只读存储器(Read Only Memory,ROM)/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

Claims (13)

1.一种接口请求的安全防护方法,其特征在于,所述接口请求的安全防护方法应用于接口请求代理端,所述方法包括:
对客户端浏览器发送的接口请求进行拦截,并将所述接口请求重定向到预设代码,得到下载请求;
基于所述下载请求得到预设格式的二进制文件,所述预设格式的二进制文件为根据客户端可信度分析策略生成的;
基于所述预设格式的二进制文件对所述接口请求进行加密,得到加密接口请求;
将所述加密接口请求发送至接口请求验证端进行验证,以使所述接口请求验证端基于所述加密接口请求进行安全防护。
2.如权利要求1所述的接口请求的安全防护方法,其特征在于,所述基于所述预设格式的二进制文件对所述接口请求进行加密,得到加密接口请求,包括:
调用所述预设代码中的实例化策略将所述预设格式的二进制文件实例化,得到实例化对象,并将所述实例化对象封装至全局对象;
基于初始对象创建代理对象;
在所述代理对象中调用所述全局对象中的实例化对象对所述接口请求进行加密,得到加密接口请求。
3.如权利要求2所述的接口请求的安全防护方法,其特征在于,所述在所述代理对象中调用所述全局对象中的实例化对象对所述接口请求进行加密,得到加密接口请求,包括:
通过所述代理对象得到所述接口请求的请求头、请求体以及请求网址;
将所述请求头、所述请求体以及所述请求网址进行组合,生成字符串;
通过预设哈希算法计算所述字符串的哈希值;
通过随机函数生成随机偏移量;
将所述随机偏移量作为密钥,通过所述密钥对所述哈希值进行加密,得到签名值;
将所述签名值和所述随机偏移量添加到所述接口请求的请求头中,得到加密接口请求。
4.如权利要求2所述的接口请求的安全防护方法,其特征在于,所述将所述加密接口请求发送至接口请求验证端进行验证,包括:
获取封装参数;
通过所述封装参数对所述初始对象进行封装,得到更新对象;
通过所述更新对象将所述加密接口请求发送至接口请求验证端进行验证。
5.一种接口请求的安全防护方法,其特征在于,所述接口请求的安全防护方法应用于接口请求验证端,所述方法包括:
在接收到接口请求代理端发送的加密接口请求时,获取预设缓存服务器中的验证信息;
基于所述验证信息对所述加密接口请求进行验证,得到验证结果,其中,所述加密接口请求中包括签名值和随机偏移量;
根据所述验证结果对所述加密接口请求进行合法性判断,实现接口请求的安全防护。
6.如权利要求5所述的接口请求的安全防护方法,其特征在于,所述在接收到接口请求代理端发送的加密接口请求时,获取预设缓存服务器中的验证信息,包括:
在接收到接口请求代理端发送的加密接口请求时,从所述接口请求代理端中同步客户端可信度分析策略;
通过所述客户端可信度分析策略对所述加密接口请求进行预处理,得到待验证信息;
根据所述待验证信息得到所述加密接口请求的请求域名;
通过所述请求域名从预设缓存服务器中获取验证信息。
7.如权利要求6所述的接口请求的安全防护方法,其特征在于,所述基于所述验证信息对所述加密接口请求进行验证,得到验证结果,包括:
根据所述验证信息得到域名黑名单列表;
将所述请求域名与所述域名黑名单列表进行比对,得到比对结果;
将所述比对结果作为验证结果。
8.如权利要求7所述的接口请求的安全防护方法,其特征在于,所述根据所述验证结果对所述加密接口请求进行合法性判断,包括:
在所述验证结果为所述请求域名位于所述域名黑名单列表的情况下,确定所述加密接口请求为不合法请求,阻断所述加密接口请求的访问;
在所述验证结果为所述请求域名不位于所述域名黑名单列表中的情况下,获取所述验证信息中的域名白名单列表;
将所述请求域名与所述域名白名单列表进行比对;
在所述请求域名位于所述域名白名单列表的情况下,确定所述加密接口请求为合法请求。
9.如权利要求8所述的接口请求的安全防护方法,其特征在于,所述将所述请求域名与所述域名白名单列表进行比对之后,还包括:
在所述请求域名不位于所述域名白名单列表的情况下,通过所述请求域名从所述验证信息中得到随机偏移量缓存列表;
根据所述待验证信息得到随机偏移量;
将所述随机偏移量与所述随机偏移量缓存列表进行比较;
在所述随机偏移量与所述随机偏移量缓存列表中的第一状态标识对应的数值相同,且所述随机偏移量与所述随机偏移量缓存列表中的第二状态标识对应的数值不相同时,确定所述加密接口请求为合法请求,其中,所述第一状态标识和所述第二状态标识为相反标识。
10.如权利要求9所述的接口请求的安全防护方法,其特征在于,所述将所述随机偏移量与所述随机偏移量缓存列表进行比较之后,还包括:
在所述随机偏移量与所述随机偏移量缓存列表中的第二状态标识对应的数值相同时,确定所述加密接口请求为不合法请求,且所述加密接口请求为接口攻击行为。
11.如权利要求5至10中任一项所述的接口请求的安全防护方法,其特征在于,所述根据所述验证结果对所述加密接口请求进行合法性判断之后,还包括:
在所述加密接口请求为不合法请求时,阻断所述加密接口请求的访问;
记录所述加密接口请求对应的请求域名的失败访问次数;
在所述请求域名在预设时间内的失败访问次数大于等于预设访问次数阈值时,将所述请求域名添加至域名黑名单列表;
在所述请求域名在预设时间内的失败访问次数小于所述预设访问次数阈值时,将所述失败访问次数和所述请求域名记录至所述预设缓存服务器,并清理过期数据。
12.如权利要求5至10中任一项所述的接口请求的安全防护方法,其特征在于,所述根据所述验证结果对所述加密接口请求进行合法性判断之后,还包括:
在所述加密接口请求为不合法请求且不为接口攻击行为时,从所述验证信息中得到配置密钥和配置加密算法;
基于所述配置密钥和所述配置加密算法对所述加密接口请求进行解密,得到预设签名值;
在所述预设签名值与所述加密接口请求中的签名值不一致时,确定所述加密接口请求被篡改,阻断所述加密接口请求的访问;
在所述预设签名值与所述加密接口请求中的签名值一致时,确定所述加密接口请求未被篡改,通过请求域名从所述预设缓存服务器中获取配置的网页地址信息以及负载均衡策略;
将所述加密接口请求按照所述负载均衡策略转发至所述网页地址信息对应的网页服务器,完成请求转发。
13.一种接口请求的安全防护系统,其特征在于,所述接口请求的安全防护系统包括上述权利要求1至4中任一项所述的接口请求代理端以及上述权利要求5至12中任一项所述的接口请求验证端。
CN202311287904.2A 2023-10-07 2023-10-07 接口请求的安全防护方法及系统 Pending CN117439739A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311287904.2A CN117439739A (zh) 2023-10-07 2023-10-07 接口请求的安全防护方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311287904.2A CN117439739A (zh) 2023-10-07 2023-10-07 接口请求的安全防护方法及系统

Publications (1)

Publication Number Publication Date
CN117439739A true CN117439739A (zh) 2024-01-23

Family

ID=89547144

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311287904.2A Pending CN117439739A (zh) 2023-10-07 2023-10-07 接口请求的安全防护方法及系统

Country Status (1)

Country Link
CN (1) CN117439739A (zh)

Similar Documents

Publication Publication Date Title
CN108471432B (zh) 防止网络应用程序接口被恶意攻击的方法
US9985994B2 (en) Enforcing compliance with a policy on a client
Hodges et al. Http strict transport security (hsts)
US7861087B2 (en) Systems and methods for state signing of internet resources
US8185942B2 (en) Client-server opaque token passing apparatus and method
US7793094B2 (en) HTTP cookie protection by a network security device
US10270792B1 (en) Methods for detecting malicious smart bots to improve network security and devices thereof
US9172707B2 (en) Reducing cross-site scripting attacks by segregating HTTP resources by subdomain
US9374339B2 (en) Authentication of remote host via closed ports
JP2002175010A (ja) ホームページ改竄防止システム
WO2012051452A2 (en) Protecting websites and website users by obscuring urls
US10348701B2 (en) Protecting clients from open redirect security vulnerabilities in web applications
CN113204772B (zh) 数据处理方法、装置、系统、终端、服务器和存储介质
Hodges et al. Rfc 6797: Http strict transport security (hsts)
CN112699374A (zh) 一种完整性校验漏洞安全防护的方法及系统
CN114745202A (zh) 一种主动防御web攻击的方法及基于主动防御的web安全网关
CN112968910B (zh) 一种防重放攻击方法和装置
CN107026828A (zh) 一种基于互联网缓存的防盗链方法及互联网缓存
CN109886011B (zh) 一种安全防护方法和装置
CN104811421A (zh) 基于数字版权管理的安全通信方法及装置
Aljawarneh Emerging challenges, security issues, and Technologies in Online Banking Systems
CN117439739A (zh) 接口请求的安全防护方法及系统
Mei et al. Research and Defense of Cross-Site WebSocket Hijacking Vulnerability
CN115118455B (zh) 面向网页安全的基于属性加密访问控制反爬虫系统及方法
CN113709100B (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