CN114553541A - 一种分级校验防爬虫的方法、装置、设备及存储介质 - Google Patents
一种分级校验防爬虫的方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN114553541A CN114553541A CN202210165100.4A CN202210165100A CN114553541A CN 114553541 A CN114553541 A CN 114553541A CN 202210165100 A CN202210165100 A CN 202210165100A CN 114553541 A CN114553541 A CN 114553541A
- Authority
- CN
- China
- Prior art keywords
- risk
- verification
- coefficient
- data
- user
- 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
- 238000000034 method Methods 0.000 title claims abstract description 36
- 230000002265 prevention Effects 0.000 title claims description 10
- 238000012795 verification Methods 0.000 claims abstract description 88
- 230000002159 abnormal effect Effects 0.000 claims abstract description 24
- 241000238631 Hexapoda Species 0.000 claims abstract description 13
- 230000009193 crawling Effects 0.000 claims abstract description 11
- 238000011156 evaluation Methods 0.000 claims abstract description 10
- 230000006399 behavior Effects 0.000 claims description 40
- 238000004590 computer program Methods 0.000 claims description 18
- 239000011159 matrix material Substances 0.000 claims description 14
- 238000007789 sealing Methods 0.000 claims description 12
- 238000004364 calculation method Methods 0.000 claims description 9
- 230000006870 function Effects 0.000 claims description 8
- 238000012937 correction Methods 0.000 claims description 4
- ONUFESLQCSAYKA-UHFFFAOYSA-N iprodione Chemical compound O=C1N(C(=O)NC(C)C)CC(=O)N1C1=CC(Cl)=CC(Cl)=C1 ONUFESLQCSAYKA-UHFFFAOYSA-N 0.000 claims 1
- 238000012549 training Methods 0.000 claims 1
- 238000010586 diagram Methods 0.000 description 11
- 238000012545 processing Methods 0.000 description 6
- 238000004422 calculation algorithm Methods 0.000 description 5
- 230000007704 transition Effects 0.000 description 5
- 230000000903 blocking effect Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000003062 neural network model Methods 0.000 description 2
- 208000012260 Accidental injury Diseases 0.000 description 1
- 241000239290 Araneae Species 0.000 description 1
- 208000014674 injury Diseases 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000008569 process Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1441—Countermeasures against malicious traffic
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/951—Indexing; Web crawling techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/044—Recurrent networks, e.g. Hopfield networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/02—Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/02—Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
- H04L63/0227—Filtering policies
- H04L63/0236—Filtering by address, protocol, port number or service, e.g. IP-address or URL
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/12—Applying verification of the received information
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- General Engineering & Computer Science (AREA)
- Computing Systems (AREA)
- Computer Hardware Design (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Life Sciences & Earth Sciences (AREA)
- Artificial Intelligence (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Molecular Biology (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Biomedical Technology (AREA)
- Computational Linguistics (AREA)
- Biophysics (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明涉及一种分级校验防爬虫方法、设备、装置及计算机存储介质。本发明所提供的分级校验防爬虫方法,包括:接受用户请求,统计横向时间访问次数,利用所述横向时间访问次数计算风险系数,判断所述风险系数是否在预设的校验异常范围内,若所述风险系数在预设的校验异常范围内,则根据所述风险系数进行风险值评估,判断用户请求风险分级,当所述用户请求风险分级为高风险时,进行登录拦截校验,所述用户请求风险分级为中风险时,进行验证码校验,所述用户请求风险分级为低风险时,则允许请求,本发明避免了误封正常用户ip地址,既不影响正常用户的访问,并且还防止了系统宕机的风险,解决了现有技术中单一通过并发访问频率来拦截爬虫的问题。
Description
技术领域
本发明涉及数据处理技术领域,尤其是指一种分级校验防爬虫方法、设备、装置及计算机存储介质。
背景技术
现有的技术中,主要的防爬虫方式为统计固定时长内的访问总数来判定请求是否是爬虫,该方式单一且容易导致恶意爬虫在上限内高并发请求后台,或使用换ip的方式来并发访问爬取数据,导致服务器宕机,而依靠封禁ip地址的防爬虫方式虽然有效,但容易误伤正常用户,所以需要开发一个新的防爬虫方式,解决现有技术中单一通过并发访问频率来拦截爬虫的问题,并优化拦截效率,防止误封正常用户ip地址。
发明内容
为此,本发明所要解决的技术问题在于克服现有技术中判断爬虫方式单一,拦截效率不高的问题。
为解决上述技术问题,本发明提供了一种分级校验防爬虫方法、设备、装置及计算机存储介质,包括:
接受用户请求,获取横向时间访问数据;
利用所述横向时间访问数据统计得到横向时间访问次数;
利用所述横向时间访问次数计算风险系数;
判断所述风险系数是否在预设的校验异常范围内;
若所述风险系数在所述预设校验异常范围内,则根据所述风险系数进行风险值评估,判断用户请求风险分级,所述用户请求风险分级包括低风险、中风险、高风险;
当所述用户请求风险分级为高风险时,进行登录拦截校验,当所述用户请求风险分级为中风险时,进行验证码校验,当所述用户请求风险分级为低风险时,则允许请求,返回数据并存储至数据库;
若所述登录拦截校验或所述验证码校验失败,则判定为爬虫,封禁ip,若登录成功或所述验证码校验成功,则允许请求并将所述风险系数清零。
优选地,所述利用所述横向时间访问数据统计得到横向时间访问次数包括:
将所述横向时间访问数据存储至数据库并设置过期时间为预设时长;
利用所述横向时间访问数据的唯一标识key统计横向时间访问次数,所述横向时间访问次数为同一时间内用户并发的重复行为,所述横向时间访问数据的唯一标识key包含ip和访问端信息。
优选地,所述唯一标识key为目标url和当前时间minute的Md5加密key。
优选地,所述利用所述横向时间访问次数计算风险系数包括:
所述风险系数score计算规则为:
score=d+c/r+m
其中,c为所述用户的横向时间访问次数,r为请求阈值系数,m为根据用户行为风险预设的不同分数,d为根据两次相同访问时间间隔预设的分数,An为在每次用户操作时,采用预先训练好的RNN+SoftMax模型选取预先定义的分值数组中的一个分值,并对每次操作选取的数值进行累加得到的分数:
An=tanh(Wα×An-1+Wβ×Tn+Basic)
其中,n为循环迭代次数,Wα为m*n矩阵,Wβ为m*n矩阵,T为矩阵第一列,Basic为m*1矩阵,m为常量;
所述RNN+SoftMax模型的的损失函数为:
其中,N为样本数,M为类别数,Yic为真实数据概率,Pic属于类别为i的预测概率,x为修正参数。
优选地,所述所述判断所述风险系数是否在预设的校验异常范围内包括:
若所述风险系数不在预设的校验异常范围内,则判断所述横向时间访问次数是否超过访问次数上限,若超过所述访问次数上限,则判定为爬虫;
若所述横向时间访问次数未超过所述访问次数上限,且所述横向时间访问数据的唯一标识key存在合法前置访问,则允许用户请求,正常返回数据并存到数据库。
优选地,所述所述若所述风险系数在预设的校验异常范围内,则根据所述风险系数进行风险值评估,判断用户请求风险分级,所述用户请求风险分级包括低风险、中风险、高风险包括:
所述预设校验异常范围划分为预设低风险范围、预设中风险范围、预设高风险范围;
若所述用户的横向时间访问次数未超过访问次数上限,若所述横向时间访问数据的唯一标识key不存在合法前置访问,且所述风险系数在所述预设低风险范围内,则判定为所述低风险;
若所述用户的横向时间访问次数未超过所述访问次数上限时,且所述横向时间访问数据的唯一标识key存在合法前置访问,且所述风险系数在所述预设中风险范围内,则判定为所述中风险;
若所述用户的横向时间访问次数未超过所述访问次数上限时,但所述横向时间访问数据的唯一标识key不存在合法前置访问,且所述风险系数在所述预设高风险范围内,则判定为所述高风险。
优选地,所述若所述登录拦截校验或验证码校验失败,则判定为爬虫,封禁ip,若所述登录成功或验证码校验成功,则允许请求包括:
当所述验证码校验通过,则返回约束数量数据,存到数据库并将所述风险系数清零,若验证码校验失败达到上限次数,则所述风险系数直线上升达到既定阈值,判定为恶意爬虫,封禁ip;
当登录操作成功,则返回所述约束数量数据,存到数据库并将所述风险系数清零,若登录失败次数达到上限次数,则所述风险系数直线上升达到既定阈值,判定为恶意爬虫,封禁ip。
本发明还提供了一种分级校验防爬虫装置,包括:
接受请求模块,用于接受到用户请求,获取横向时间访问数据;
横向次数统计模块,用于根据所述横向时间访问数据统计横向时间访问次数;
风险系数计算模块,用于利用所述横向时间访问次数计算风险系数;
用户行为风险校验模块,用于判断所述风险系数是否在预设的校验异常范围内;
风险值评估模块,用于若所述风险系数在所述预设校验异常范围内,则根据所述风险系数进行风险值评估,判断用户请求风险分级,所述用户请求风险分级包括低风险、中风险、高风险;
分级校验模块,用于当所述用户请求风险分级为高风险时,进行登录拦截校验,当所述用户请求风险分级为中风险时,进行验证码校验,当所述用户请求风险分级为低风险时,则允许请求,返回数据并存储至数据库;
合法性校验模块,用于若所述登录拦截校验或所述验证码校验失败,则判定为爬虫,封禁ip,若登录成功或所述验证码校验成功,则允许请求并将所述风险系数清零。
本发明还提供了一种分级校验防爬虫设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现上述一种分级校验防爬虫方法的步骤。
本发明还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述一种分级校验防爬虫方法的步骤。
本发明的上述技术方案相比现有技术具有以下优点:
接受用户请求,获取横向时间访问数据,利用所述横向时间访问数据统计得到横向时间访问次数,改变了以往通过统计固定时长内的访问总数来判定请求是否是爬虫,有效避免了恶意爬虫在上限内高并发请求后台或使用换ip的方式来并发访问爬取数据,导致服务器宕机;利用所述横向时间访问次数计算风险系数,判断所述风险系数是否在预设的校验异常范围内,若所述风险系数在预设的校验异常范围内,则根据所述风险系数进行风险值评估,判断分级为低风险、中风险、高风险中的一种,当判断分级为高风险时,进行登录拦截校验,判断分级为中风险时,进行验证码校验,当判断分级为高风险时,进行登录拦截校验,判断分级为中风险时,进行验证码校验,判断分级为低风险时,则允许请求,返回数据并存到数据库,若所述登录拦截校验或验证码校验失败,则判定为爬虫,封禁ip,若所述登录成功或验证码校验成功,则允许请求,本发明从用户行为来创建反爬虫模型,具体分析用户行为的合法性,通过横向和纵向分析用户行为,横向为同一时间内的并发的重复行为,纵向为并发的重复行为以及单一用户的行为合法性校验,通过算法不断提高非法用户的行为风险系数,针对不同的风险级别设置不同的拦截级别,可以在html中展示多种不同防爬虫校验方式,精准有效的针对市面上大多数针对接口爬虫或靠html内容来进行爬虫的框架,当行为流量逐渐合法后,降低系统的整体风险系数,针对同一用户的多次访问,算法不断优化,动态提高或降低风险系数,有效避免误封正常用户ip地址,精准反爬,不影响正常用户的访问。
附图说明
为了使本发明的内容更容易被清楚的理解,下面根据本发明的具体实施例并结合附图,对本发明作进一步详细的说明,其中:
图1是本发明分级校验防爬虫方法的实现流程图;
图2为本发明所提供的一种实施例的流程图;
图3为用户行为分类序列图;
图4是本发明实施例提供的一种分级校验防爬虫方法的装置的结构框图。
具体实施方式
本发明的核心是提供一种分级校验防爬虫方法、装置、设备及计算机存储介质,既不影响正常用户的访问,并且还防止了系统宕机的风险,解决了现有技术中单一通过并发访问频率来拦截爬虫的问题。
为了使本技术领域的人员更好地理解本发明方案,下面结合附图和具体实施方式对本发明作进一步的详细说明。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参考图1,图1为本发明所提供的分级校验防爬虫方法的实现流程图;具体操作步骤如下:
S101:接受用户请求,获取横向时间访问数据;
S102:利用所述横向时间访问数据统计得到横向时间访问次数;
将所述横向时间访问数据存入数据库并设置过期时间为1分钟,所述横向时间访问数据的唯一标识key包含ip和访问端信息;
利用所述横向时间访问数据的唯一标识key统计横向时间访问次数,所述横向时间访问次数为同一时间内用户并发的重复行为;
唯一标识key为目标url和当前时间minute的Md5加密key;
S103:利用所述横向时间访问次数计算风险系数;
所述风险系数score计算规则为:
score=d+c/r+m
其中,c为所述用户的横向时间访问次数,r为请求阈值系数,m为根据用户行为风险预设的不同分数,d为根据两次相同访问时间间隔预设的分数,An为在每次用户操作时,采用预先训练好的RNN+SoftMax模型选取预先定义的分值数组中的一个分值,并对每次操作选取的数值进行累加得到的分数:
An=tanh(Wα×An-1+Wβ×Tn+Basic)
其中,n为循环迭代次数,Wα为m*n矩阵,Wβ为m*n矩阵,T为矩阵第一列,Basic为m*1矩阵,m为常量;
所述RNN+SoftMax模型的的损失函数为:
其中,N为样本数,M为类别数,Yic为真实数据概率,Pic属于类别为i的预测概率,x为修正参数。
S104:判断所述风险系数是否在预设的校验异常范围内;
若所述风险系数不在预设的校验异常范围内,则判断所述横向时间访问次数是否超过上限,若超过上限,则判定为爬虫;
若所述横向时间访问次数未超过上限,且所述横向时间访问数据的唯一标识key存在合法前置访问,则允许用户请求,正常返回数据并存到数据库;
S105:若所述风险系数在预设的校验异常范围内,则根据所述风险系数进行风险值评估,判断用户请求风险分级,所述用户请求风险分级包括低风险、中风险、高风险;
当所述用户的横向时间访问次数未超过上限,若所述横向时间访问数据的唯一标识key不存在合法前置访问,所述风险系数在预设低风险范围内,则判定为所述低风险;
当所述用户的横向时间访问次数未超过所述横向阈值时,且所述横向时间访问数据的唯一标识key存在合法前置访问,但所述风险系数在预设中风险范围内,则判定为所述中风险;
当所述用户的横向时间访问次数未超过所述横向阈值时,但所述横向时间访问数据的唯一标识key不存在合法前置访问,且所述风险系数在预设高风险范围内,则判定为所述高风险;
S106:当所述用户请求风险分级为高风险时,进行登录拦截校验,所述用户请求风险分级为中风险时,进行验证码校验,所述用户请求风险分级为低风险时,则允许请求,返回数据并存到数据库;
S107:若所述登录拦截校验或验证码校验失败,则判定为爬虫,封禁ip,若所述登录成功或验证码校验成功,则允许请求并将所述风险系数清零;
当所述验证码校验通过,则返回所述约束数量数据,存到数据库并将所述风险系数清零,若验证码校验失败达到上限次数,则所述风险系数直线上升达到既定阈值,判定为恶意爬虫,封禁ip;
当登录操作成功,则返回所述约束数量数据,存到数据库并将所述风险系数清零,若登录失败次数达到上限次数,则所述风险系数直线上升达到既定阈值,判定为恶意爬虫,封禁ip。
接受用户请求,获取横向时间访问数据,利用所述横向时间访问数据统计得到横向时间访问次数,改变了以往通过统计固定时长内的访问总数来判定请求是否是爬虫,解決了单一通过并发访问频率拦截爬虫的问题,有效避免了恶意爬虫在上限内高并发请求后台或使用换ip的方式来并发访问爬取数据,导致服务器宕机;利用所述横向时间访问次数计算风险系数,判断所述风险系数是否在预设的校验异常范围内,若所述风险系数在预设的校验异常范围内,则根据所述风险系数进行风险值评估,判断分级为低风险、中风险、高风险中的一种,当判断分级为高风险时,进行登录拦截校验,判断分级为中风险时,进行验证码校验,当判断分级为高风险时,进行登录拦截校验,判断分级为中风险时,进行验证码校验,判断分级为低风险时,则允许请求,返回数据并存到数据库,若所述登录拦截校验或验证码校验失败,则判定为爬虫,封禁ip,若所述登录成功或验证码校验成功,则允许请求,本发明从用户行为来创建反爬虫模型,具体分析用户行为的合法性,通过横向和纵向分析用户行为,横向为同一时间内的并发的重复行为,纵向为并发的重复行为以及单一用户的行为合法性校验,通过算法不断提高非法用户的行为风险系数,针对不同的风险级别设置不同的拦截级别,可以在html中展示多种不同防爬虫校验方式,精准有效的针对市面上大多数针对接口爬虫或靠html内容来进行爬虫的框架,当行为流量逐渐合法后,降低系统的整体风险系数,本发明通过不断校验同一用户的多次访问来校验是否为爬虫,兼具提高和降低风险系数,动态增加或减少用户的行为风险系数,还可以通过算法不断优化,精准反爬,既不影响正常用户的访问,并且还防止了系统宕机的风险,解决了现有技术中单一通过并发访问频率来拦截爬虫的问题。
基于以上实施例,请参考图2,图2为本发明所提供的一种实施例的流程图,本实施例提供了在具体场景中应用本发明的具体处理流程;
下面以医生专家信息网站为例,具体操作步骤如下:
当医生列表页接口接收请求时,执行以下步骤:
S1:接收到用户请求,获取得到横向时间的访问数据,利用所述横向时间访问数据的唯一标识key统计得到横向时间访问次数,利用所述横向时间访问次数计算风险系数;
S11:若所述横向访问次数transverse_threshold未达到上限,且请求的唯一标识unique_key已经存在合法前置访问,则返回正常数据并存到数据库,允许用户请求;
S12:若请求的url的标记在横向时间(transverse_time)内横向访问次数transverse_threshold达到上限,则判定为恶意爬虫,拦截用户请求,封禁用户ip地址;
S13:若不属于S11和S12的两种情况,则校验异常,进入S2;
S2:根据所述风险系数进行风险值评估;
S21:若transverse_threshold正常,但请求的唯一标识unique_key不存在合法前置访问,则判定为低风险,进入S3;
S22:若transverse_threshold正常,且请求的唯一标识unique_key存在合法前置访问,但风险系数score达到预设中风险范围,则判定为中风险,进行验证码校验,若校验成功则进入S3,若校验失败达到上限次数,则所述风险系数直线上升达到既定阈值,判定为恶意爬虫,拦截用户请求,封禁用户ip地址;
S23:若transverse_threshold正常,但请求的唯一标识unique_key不存在合法前置访问,且风险系数score达到预设高风险范围,则判定为高风险,进行登录拦截,若校验成功则进入S3,若校验失败达到上限次数,则所述风险系数直线上升达到既定阈值,判定为恶意爬虫,拦截用户请求,封禁用户ip地址;
S3:返回约束模型数据,并记录到数据库;
其中,横向的访问数据存入redis,key为目标url和当前minute的md5加密key,过期时间为1分钟,value为访问的计数值,每次请求可以根据key拿到transverse_threshold的值,unique_key为客户的唯一标识,有ip和访问端等信息,纵向的访问数据,即单个unique_key的访问和请求行为,有以下参数:记录请求地址和参数为url_req、上次请求时间last_time、是否被标记过爬虫if_tag、是否是爬虫is_splider、上一次访问pre_url_req、触发模型model、风险系数score;
收到请求时,如果redis中没有对应key,则初始化数据并存入,当来请求时,统计同一请求内容下单位分内transverse_threshold的值是否大于阈值,以及统计上次访问时间和此次时间的间隔,越长则风险系数逐级降低,所述模型内会设置等级范围分数:
例如:
校验异常范围为10<score<70,
低风险范围为10<score<20
中风险范围为20<score<50,
高风险范围为50<score<70
其中transverse_threshold的值会影响每次访问同一url的用户的所述风险系数score,score计算规则为:
score=@{dif_time}+transverse_threshold/req_coeff+#{model}+神经网络模型行为得分(id3_score)
其中,transverse_threshold为用户的横向时间访问次数,req_coeff为请求阈值系数,#{model}为根据用户行为风险预设的不同分数,@{dif_time}为根据两次相同访问时间间隔预设分数,可以手动设定,范围可以正负,以保证长时间不访问的为正常客户进行解封,采用RNN+SoftMax得出分数id3_score,每次用户操作产生一个分数,可定义为3,1,0,-1,3,然后对每次分数的值进行累加,如图3所示。
每次操作转换成1*N维度向量,每次构建前(N-1)步操作,所以当前输入Input位N*N维度向量,数据模型可以采用神经网络模型,本实施例采用的是Basic-Rnn模型,可以根据自己实际情况调整网络结构,如果输出A定为100*1维度向量,Wα为100*100,Wβ为100*N,B为100*1,A0为零矩阵,第一层计算结果为:A1=tanh(Wα×A0+Wβ×T1+Basic),以此类推第N层为:An=tanh(Wα×An-1+Wβ×Tn+Basic)。
本实施例为5分类问题,FC映射到30*5θ空间中,最后通过softMax进行分类,设置P1为得分为-3的概率,以此类推P5为得3分概率:
其中,k为分类数量,e为常数值,θ为矩阵运算后转换的常数值,x为修正参数。
样本损失函数定义为
其中,N为样本数,M为类别数5,Yic为真实数据概率如(0,0,1,0,0),表示P3的概率为1,Pic属于类别为i的预测概率。
本发明从用户行为来创建反爬虫模型,具体分析用户行为的合法性,通过横向和纵向分析用户行为,横向为同一时间内的并发的重复行为,纵向为单一用户的行为合法性校验以及并发的重复行为,通过算法并不断提高非法用户的行为风险系数,提高拦截级别;当行为流量逐渐合法后,降低系统的整体风险系数,不影响正常用户的访问;这样的反爬虫方式能够拦截大多数单单依靠重复访问页面来爬取数据的方式或换ip进行反爬虫的方式来解决其他单单依靠封禁ip的防爬虫方式;本发明还针对不同的风险级别设置不同的拦截模型级别,可以在html中展示多种不同的非爬虫校验方式,精准有效的针对市面上大多数针对接口爬虫或靠html内容来进行爬虫的框架;本发明还会不断校验同一用户的多次访问来校验是否为爬虫,兼具提高和降低风险系数,动态增加或减少用户的行为风险系数,还可以通过算法不断优化,精准反爬,既不影响正常用户的访问,并且还防止了系统宕机的风险;解决了现有技术中单一通过并发访问频率来拦截爬虫的问题。
请参考图4,图4为本发明实施例提供的一种分级校验防爬虫方法的装置的结构框图;具体装置可以包括:
接受请求模块100,用于接受到用户请求,获取横向时间访问数据;
横向次数统计模块200,用于根据所述横向时间访问数据统计横向时间访问次数;
风险系数计算模块300,用于利用所述横向时间访问次数计算风险系数;
用户行为风险校验模块400,用于判断所述风险系数是否在预设的校验异常范围内;
风险值评估模块500,用于若所述风险系数在预设的校验异常范围内,则根据所述风险系数进行风险值评估,判断用户请求风险分级,所述用户请求风险分级包括低风险、中风险、高风险;
分级校验模块600,用于当判断分级为高风险时,进行登录拦截校验,判断分级为中风险时,进行验证码校验,判断分级为低风险时,则允许请求,返回数据并存到数据库;
合法性校验模块700,用于若所述登录拦截校验或验证码校验失败,则判定为爬虫,封禁ip,若所述登录拦截校验或验证码校验失败,则判定为爬虫,封禁ip,若所述登录成功或验证码校验成功,则允许请求并将风险系数清零。
本实施例的一种分级校验防爬虫装置用于实现前述的分级校验防爬虫方法,因此分级校验防爬虫方法的装置中的具体实施方式可见前文分级校验防爬虫方法的实施例部分,例如,接受请求模块100,横向次数统计模块200,风险系数计算模块300,用户行为风险校验模块400,风险值评估模块500,分级校验模块600,合法性校验模块700分别用于实现上述分级校验防爬虫方法中步骤S101,S102,S103,S104,S105,S106和S107,所以,其具体实施方式可以参照相应的各个部分实施例的描述,在此不再赘述。
本发明具体实施例还提供了一种分级校验防爬虫方法的设备,包括:存储器,用于存储计算机程序;处理器,用于执行所述计算机程序时实现上述一种分级校验防爬虫方法的步骤。
本发明具体实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述一种分级校验防爬虫方法的步骤。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
显然,上述实施例仅仅是为清楚地说明所作的举例,并非对实施方式的限定。对于所属领域的普通技术人员来说,在上述说明的基础上还可以做出其它不同形式变化或变动。这里无需也无法对所有的实施方式予以穷举。而由此所引伸出的显而易见的变化或变动仍处于本发明创造的保护范围之中。
Claims (10)
1.一种分级校验防爬虫方法,其特征在于,包括:
接受用户请求,获取横向时间访问数据;
利用所述横向时间访问数据统计得到横向时间访问次数;
利用所述横向时间访问次数计算风险系数;
判断所述风险系数是否在预设校验异常范围内;
若所述风险系数在所述预设校验异常范围内,则根据所述风险系数进行风险值评估,判断用户请求风险分级,所述用户请求风险分级包括低风险、中风险、高风险;
当所述用户请求风险分级为高风险时,进行登录拦截校验,当所述用户请求风险分级为中风险时,进行验证码校验,当所述用户请求风险分级为低风险时,则允许请求,返回数据并存储至数据库;
若所述登录拦截校验或所述验证码校验失败,则判定为爬虫,封禁ip,若所述登录成功或所述验证码校验成功,则允许请求并将所述风险系数清零。
2.根据权利要求1所述的分级校验防爬虫方法,其特征在于,所述利用所述横向时间访问数据统计得到横向时间访问次数包括:
将所述横向时间访问数据存储至数据库并设置过期时间为预设时长;
利用所述横向时间访问数据的唯一标识key统计横向时间访问次数,所述横向时间访问次数为同一时间内用户并发的重复行为,所述横向时间访问数据的唯一标识key包含ip和访问端信息。
3.根据权利要求2所述的分级校验防爬虫方法,其特征在于,所述唯一标识key为目标url和当前时间minute的Md5加密key。
4.根据权利要求1所述的分级校验防爬虫方法,其特征在于,所述利用所述横向时间访问次数计算风险系数包括:
所述风险系数score计算规则为:
score=d+c/r+m
其中,c为所述用户的横向时间访问次数,r为请求阈值系数,m为根据用户行为风险预设的不同分数,d为根据两次相同访问时间间隔预设的分数,An为在每次用户操作时,采用预先训练好的RNN+SoftMax模型选取预先定义的分值数组中的一个分值,并对每次操作选取的数值进行累加得到的分数:
An=tanh(Wα×An-1+Wβ×Tn+Basic)
其中,n为循环迭代次数,Wα为m*n矩阵,Wβ为m*n矩阵,T为矩阵第一列,Basic为m*1矩阵,m为常量;
所述RNN+SoftMax模型的的损失函数为:
其中,N为样本数,M为类别数,Yic为真实数据概率,Pic属于类别为i的预测概率,x为修正参数。
5.根据权利要求1所述的分级校验防爬虫方法,其特征在于,所述判断所述风险系数是否在预设的校验异常范围内包括:
若所述风险系数不在所述预设校验异常范围内,则判断所述横向时间访问次数是否超过访问次数上限,若超过所述访问次数上限,则判定为爬虫;
若所述横向时间访问次数未超过所述访问次数上限,且所述横向时间访问数据的唯一标识key存在合法前置访问,则允许用户请求,正常返回数据并存储至数据库。
6.根据权利要求1所述的分级校验防爬虫方法,其特征在于,所述若所述风险系数在所述预设校验异常范围内,则根据所述风险系数进行风险值评估,判断用户请求风险分级,所述用户请求风险分级包括低风险、中风险、高风险包括:
所述预设校验异常范围划分为预设低风险范围、预设中风险范围、预设高风险范围;
若所述用户的横向时间访问次数未超过访问次数上限,若所述横向时间访问数据的唯一标识key不存在合法前置访问,且所述风险系数在所述预设低风险范围内,则判定为所述低风险;
若所述用户的横向时间访问次数未超过所述访问次数上限时,且所述横向时间访问数据的唯一标识key存在合法前置访问,且所述风险系数在所述预设中风险范围内,则判定为所述中风险;
若所述用户的横向时间访问次数未超过所述访问次数上限时,但所述横向时间访问数据的唯一标识key不存在合法前置访问,且所述风险系数在所述预设高风险范围内,则判定为所述高风险。
7.根据权利要求1所述的分级校验防爬虫方法,其特征在于,所述若所述登录拦截校验或所述验证码校验失败,则判定为爬虫,封禁ip,若所述登录成功或所述验证码校验成功,则允许请求并将所述风险系数清零包括:
当所述验证码校验通过,则返回约束数量数据,存储到数据库并将所述风险系数清零,若验证码校验失败达到上限次数,则所述风险系数直线上升达到既定阈值,判定为恶意爬虫,封禁ip;
当登录操作成功,则返回所述约束数量数据,存到数据库并将所述风险系数清零,若登录失败次数达到上限次数,则所述风险系数直线上升达到既定阈值,判定为恶意爬虫,封禁ip。
8.一种分级校验防爬虫装置,其特征在于,包括:
接受请求模块,用于接受到用户请求,获取横向时间访问数据;
横向次数统计模块,用于根据所述横向时间访问数据统计横向时间访问次数;
风险系数计算模块,用于利用所述横向时间访问次数计算风险系数;
用户行为风险校验模块,用于判断所述风险系数是否在预设的校验异常范围内;
风险值评估模块,用于若所述风险系数在所述预设校验异常范围内,则根据所述风险系数进行风险值评估,判断用户请求风险分级,所述用户请求风险分级包括低风险、中风险、高风险;
分级校验模块,用于当所述用户请求风险分级为高风险时,进行登录拦截校验,当所述用户请求风险分级为中风险时,进行验证码校验,当所述用户请求风险分级为低风险时,则允许请求,返回数据并存储至数据库;
合法性校验模块,用于若所述登录拦截校验或所述验证码校验失败,则判定为爬虫,封禁ip,若登录成功或所述验证码校验成功,则允许请求并将所述风险系数清零。
9.一种分级校验防爬虫设备,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如权利要求1至7任一项所述一种分级校验防爬虫方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述一种分级校验防爬虫方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210165100.4A CN114553541B (zh) | 2022-02-17 | 2022-02-17 | 一种分级校验防爬虫的方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210165100.4A CN114553541B (zh) | 2022-02-17 | 2022-02-17 | 一种分级校验防爬虫的方法、装置、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114553541A true CN114553541A (zh) | 2022-05-27 |
CN114553541B CN114553541B (zh) | 2024-02-06 |
Family
ID=81677306
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210165100.4A Active CN114553541B (zh) | 2022-02-17 | 2022-02-17 | 一种分级校验防爬虫的方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114553541B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115688147A (zh) * | 2022-12-29 | 2023-02-03 | 亿海蓝(北京)数据技术股份公司 | 地理信息系统数据保护方法、系统、设备、介质和芯片 |
CN117675387A (zh) * | 2023-12-12 | 2024-03-08 | 广州达悦信息科技有限公司 | 基于用户行为分析的网络安全风险预测方法及系统 |
Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020032772A1 (en) * | 2000-09-14 | 2002-03-14 | Bjorn Olstad | Method for searching and analysing information in data networks |
CN105187396A (zh) * | 2015-08-11 | 2015-12-23 | 小米科技有限责任公司 | 识别网络爬虫的方法及装置 |
US20170124464A1 (en) * | 2015-10-28 | 2017-05-04 | Fractal Industries, Inc. | Rapid predictive analysis of very large data sets using the distributed computational graph |
CN107196968A (zh) * | 2017-07-12 | 2017-09-22 | 深圳市活力天汇科技股份有限公司 | 一种爬虫识别方法 |
CN109981567A (zh) * | 2019-02-13 | 2019-07-05 | 平安科技(深圳)有限公司 | 网络验证数据的发送方法、装置、存储介质和服务器 |
CN110020512A (zh) * | 2019-04-12 | 2019-07-16 | 重庆天蓬网络有限公司 | 一种反爬虫的方法、装置、设备及存储介质 |
KR20200014638A (ko) * | 2018-08-01 | 2020-02-11 | 네이버웹툰 주식회사 | 분산 웹 크롤러에 대한 방어 방법 및 장치 |
CN111597424A (zh) * | 2020-07-21 | 2020-08-28 | 平安国际智慧城市科技股份有限公司 | 爬虫识别方法、装置、计算机设备和存储介质 |
CN111767575A (zh) * | 2020-06-29 | 2020-10-13 | 中国平安财产保险股份有限公司 | 数据防爬方法、装置、设备及计算机可读存储介质 |
CN112785112A (zh) * | 2019-11-11 | 2021-05-11 | 华为技术有限公司 | 一种风险规则提取方法及风险规则提取装置 |
CN113271322A (zh) * | 2021-07-20 | 2021-08-17 | 北京明略软件系统有限公司 | 异常流量的检测方法和装置、电子设备和存储介质 |
CN113918718A (zh) * | 2021-10-28 | 2022-01-11 | 平安银行股份有限公司 | 基于人工智能的车险用户分类方法、装置、设备及介质 |
-
2022
- 2022-02-17 CN CN202210165100.4A patent/CN114553541B/zh active Active
Patent Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020032772A1 (en) * | 2000-09-14 | 2002-03-14 | Bjorn Olstad | Method for searching and analysing information in data networks |
CN105187396A (zh) * | 2015-08-11 | 2015-12-23 | 小米科技有限责任公司 | 识别网络爬虫的方法及装置 |
US20170124464A1 (en) * | 2015-10-28 | 2017-05-04 | Fractal Industries, Inc. | Rapid predictive analysis of very large data sets using the distributed computational graph |
CN107196968A (zh) * | 2017-07-12 | 2017-09-22 | 深圳市活力天汇科技股份有限公司 | 一种爬虫识别方法 |
KR20200014638A (ko) * | 2018-08-01 | 2020-02-11 | 네이버웹툰 주식회사 | 분산 웹 크롤러에 대한 방어 방법 및 장치 |
CN109981567A (zh) * | 2019-02-13 | 2019-07-05 | 平安科技(深圳)有限公司 | 网络验证数据的发送方法、装置、存储介质和服务器 |
CN110020512A (zh) * | 2019-04-12 | 2019-07-16 | 重庆天蓬网络有限公司 | 一种反爬虫的方法、装置、设备及存储介质 |
CN112785112A (zh) * | 2019-11-11 | 2021-05-11 | 华为技术有限公司 | 一种风险规则提取方法及风险规则提取装置 |
CN111767575A (zh) * | 2020-06-29 | 2020-10-13 | 中国平安财产保险股份有限公司 | 数据防爬方法、装置、设备及计算机可读存储介质 |
CN111597424A (zh) * | 2020-07-21 | 2020-08-28 | 平安国际智慧城市科技股份有限公司 | 爬虫识别方法、装置、计算机设备和存储介质 |
CN113271322A (zh) * | 2021-07-20 | 2021-08-17 | 北京明略软件系统有限公司 | 异常流量的检测方法和装置、电子设备和存储介质 |
CN113918718A (zh) * | 2021-10-28 | 2022-01-11 | 平安银行股份有限公司 | 基于人工智能的车险用户分类方法、装置、设备及介质 |
Non-Patent Citations (3)
Title |
---|
WAN FANGFANG; XIE XUSHENG: "Mining Techniques of XSS Vulnerabilities Based on Web Crawler", APPLIED MECHANICS AND MATERIALS * |
丁文豪: "恶意爬虫主动防御技术研究与实现", 中国优秀硕士论文电子期刊网 * |
黎佳?;赵波;李想;刘会;刘一凡;邹建文;: "基于深度学习的网络流量异常预测方法", 计算机工程与应用, no. 06 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115688147A (zh) * | 2022-12-29 | 2023-02-03 | 亿海蓝(北京)数据技术股份公司 | 地理信息系统数据保护方法、系统、设备、介质和芯片 |
CN115688147B (zh) * | 2022-12-29 | 2023-02-28 | 亿海蓝(北京)数据技术股份公司 | 地理信息系统数据保护方法、系统、设备、介质和芯片 |
CN117675387A (zh) * | 2023-12-12 | 2024-03-08 | 广州达悦信息科技有限公司 | 基于用户行为分析的网络安全风险预测方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN114553541B (zh) | 2024-02-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109831465B (zh) | 一种基于大数据日志分析的网站入侵检测方法 | |
TWI684151B (zh) | 一種非法交易檢測方法及裝置 | |
CN110602029B (zh) | 一种用于识别网络攻击的方法和系统 | |
CN103297435B (zh) | 一种基于web日志的异常访问行为检测方法与系统 | |
US8191149B2 (en) | System and method for predicting cyber threat | |
US9680866B2 (en) | System and method for analyzing web content | |
CN114553541A (zh) | 一种分级校验防爬虫的方法、装置、设备及存储介质 | |
US10318728B2 (en) | Determining permissible activity based on permissible activity rules | |
US20100262457A1 (en) | Computer-Implemented Systems And Methods For Behavioral Identification Of Non-Human Web Sessions | |
US10885167B1 (en) | Intrusion detection based on anomalies in access patterns | |
CN107241296B (zh) | 一种Webshell的检测方法及装置 | |
US11477231B2 (en) | System and method for vulnerability remediation prioritization | |
US11928685B1 (en) | System, method, and program product for recognizing and rejecting fraudulent purchase attempts in e-commerce | |
WO2010123623A2 (en) | System and method for developing a risk profile for an internet resource | |
US7840578B2 (en) | Method for determining validity of command and system thereof | |
CN104580075A (zh) | 一种用户登陆验证方法、装置及系统 | |
US11489857B2 (en) | System and method for developing a risk profile for an internet resource | |
US20220377100A1 (en) | Penetration Test Method and System for Network Device | |
US20200302335A1 (en) | Method for tracking lack of bias of deep learning ai systems | |
Goševa-Popstojanova et al. | Empirical characterization of session–based workload and reliability for web servers | |
Li et al. | Application of hidden Markov model in SQL injection detection | |
RU2659482C1 (ru) | Способ защиты веб-приложений при помощи интеллектуального сетевого экрана с использованием автоматического построения моделей приложений | |
CN111160797A (zh) | 风控模型的构建方法、装置、存储介质及终端 | |
US20240291847A1 (en) | Security risk remediation tool | |
Ro et al. | Detection Method for Distributed Web‐Crawlers: A Long‐Tail Threshold Model |
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 | ||
CB03 | Change of inventor or designer information | ||
CB03 | Change of inventor or designer information |
Inventor after: Wang Jue Inventor before: Wang Jue Inventor before: Zhu Liang |
|
GR01 | Patent grant | ||
GR01 | Patent grant |