CN110581841B - 一种后端反爬虫方法 - Google Patents
一种后端反爬虫方法 Download PDFInfo
- Publication number
- CN110581841B CN110581841B CN201910753560.7A CN201910753560A CN110581841B CN 110581841 B CN110581841 B CN 110581841B CN 201910753560 A CN201910753560 A CN 201910753560A CN 110581841 B CN110581841 B CN 110581841B
- Authority
- CN
- China
- Prior art keywords
- server
- access token
- crawler
- executed
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
-
- 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/08—Network architectures or network communication protocols for network security for authentication of entities
- H04L63/0807—Network architectures or network communication protocols for network security for authentication of entities using tickets, e.g. Kerberos
-
- 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/1408—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
- H04L63/1416—Event detection, e.g. attack signature detection
-
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic 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/321—Cryptographic 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 a third party or a trusted authority
- H04L9/3213—Cryptographic 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 a third party or a trusted authority using tickets or tokens, e.g. Kerberos
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computing Systems (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Medical Informatics (AREA)
- Evolutionary Computation (AREA)
- Data Mining & Analysis (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Artificial Intelligence (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明涉及一种后端反爬虫方法,包括以下步骤:步骤S1:服务器端反爬系统检测请求数据是否携带访问令牌,若是,执行步骤S3,若否,执行步骤S2;步骤S2:服务器端反爬系统识别请求数据是否为恶意请求,若是,则执行步骤S5,若否,则产生访问令牌并执行步骤S4;步骤S3:服务器端反爬系统对访问令牌进行交叉验证,若验证成功,则执行步骤S4,若验证失败,则执行步骤S5;步骤S4:返回正确数据;步骤S5:返回错误数据。与现有技术相比,数据加密或传输不依赖于前端,且进行交叉验证,杜绝了其它人员能够对Javascript进行逆向分析,进一步提高了安全性。
Description
技术领域
本发明涉及反爬虫领域,尤其是涉及一种后端反爬虫方法。
背景技术
随着技术的发展,特别是云计算技术的发展,恶意爬虫所使用的技术越来越先进,他们不再是简单的脚本或者程序,而是能够在一定程度上模拟人的行为,模拟浏览器的行为进行信息爬取。
Header是HTTP请求当中必须且重要的部分,用于描述客户端和请求信息,但很遗憾的是Header很容易被伪造,所以单纯的依靠此数据来判断识别爬虫作用非常有限。
过去一般认为爬虫无法处理动态请求,只能获取静态资源,但当前网络已经出现不少开源的浏览器内核包括DOM+JS(文档对象模型+Javascript)解析引擎促使一些爬虫已经具备了处理动态渲染的能力,如若继续使用是否只处理静态资源这个维度来识别爬虫效率会逐渐降低。
过去爬虫一般是使用IDC机房(互联网数据中心)的IP进行爬取,这样导致IP段变化不大,并且也比较好识别,但是目前随着云计算的普及,特别是弹性IP越来越多,很多爬虫是利用云计算资源进行爬取,这样可以以很低的成本就拥有大量的代理IP池。
过去反爬虫主要是依靠频率限制,但低频爬虫的出现和配合大量IP进行恶意抓取,每个IP抓取量不大的情况下,可能导致出现大量误判;所以依靠频率限制作为反爬虫手段的弊端很大,甚至可能出现反效果,目前缺少更加严谨的方法实现反爬虫。
除此之外,目前反爬虫方法主要集中于前端,后端反爬虫方法较少。
发明内容
本发明的目的就是为了克服上述现有技术存在的缺陷而提供一种后端反爬虫方法。
本发明的目的可以通过以下技术方案来实现:
一种后端反爬虫方法,该方法包括以下步骤:
步骤S1:服务器端反爬系统检测请求数据是否携带访问令牌,若是,执行步骤S3,若否,执行步骤S2;
步骤S2:服务器端反爬系统识别请求数据是否为恶意请求,若是,则执行步骤S5,若否,则产生访问令牌并执行步骤S4;
步骤S3:服务器端反爬系统对访问令牌进行交叉验证,若验证成功,则执行步骤S4,若验证失败,则执行步骤S5;
步骤S4:返回正确数据;
步骤S5:返回错误数据。
所述的服务器端反爬系统通过机器学习方法识别请求数据是否为恶意请求。
所述的机器学习方法为深度学习方法。
所述的错误数据包括警告信息。
所述的反爬系统包括PHP程序。
所述的步骤S3中,若验证成功,服务器端反爬系统产生新的访问令牌后选择性替换原有访问令牌,并执行步骤S4。
所述的原有访问令牌为加密后的原有访问令牌,所述服务器端反爬系统产生新的访问令牌进行加密后,选择性替换原有访问令牌。
所述的访问令牌至少包括一部和二部,所述一部包括二部信息,所述二部包括校验规则。
所述的一部加密方法由服务器端反爬系统生成,所述二部信息包括二部加密方法。
所述的交叉验证步骤包括:
服务器端反爬系统对访问令牌一部和二部进行解密;
服务器端反爬系统对解密后的二部信息和检验规则进行验证。与现有技术相比,本发明具有以下优点:
(1)正常请求用户无感知,相比其它通过验证码方式杜绝爬虫的方法,能够进一步提高用户体验。
(2)数据加密或传输不依赖于前端,杜绝了其它人员能够对JS进行逆向分析,破解出加密算法,进一步提高了安全性。
(3)访问令牌具有干扰性、随机性、非唯一性等其它反爬方案没有的特点,极大程度提高了爬虫开发人员分析难度。
(4)引入数据交叉验证,利用访问令牌中多个部分或其他数据进行相互校验,校验过程是随机动态的,可根据不同安全策略设置对应的校验频率。
(5)反爬虫的部署非全局,可根据不同的响应内容进行自由部署;针对于具有商业或隐私性质,不方便公开但又必须公开的数据可部署更高级别的策略反爬方案,具有很高的自由度,避免非必要的性能浪费。
附图说明
图1为本发明的流程图;
图2为本发明的结构框图。
具体实施方式
下面结合附图和具体实施例对本发明进行详细说明。本实施例以本发明技术方案为前提进行实施,给出了详细的实施方式和具体的操作过程,但本发明的保护范围不限于下述的实施例。
实施例
本实施例提供一种后端反爬虫方法。
基于协议:
HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写,是用于从万维网(WWW:World Wide Web)服务器传输超文本到本地浏览器的传送协议。而任何一次HTTP请求,都至少包含两部分请求行(request ling)和请求头部(header),而事实上请求头部是可以在特殊手段下任意伪造的,而常规爬虫通常情况下也是通过伪造请求头模拟人为操作,达到突破服务器限制的目的。
行为识别:
在网站或其它接口等请求中,如果是人为正常请求的情况下,都有很大特点;比如请求地址为入口地址,相同IP并发不高,Referer不为空等等。基于此类请求特点,服务器可以根据请求数据进行分析,构建大数据数据库,利用数据进行模型训练和机器学习,如深度学习中的监督学习方法,或者通过其它类似手段对初次请求行为进行识别。
令牌生成:
在客户与服务器进行初次通信并行为识别之后,如果为正常请求,服务器会给客户颁发具有时效性和安全性的通信令牌(Token,由开发人员基于某种生成方式由程序自动生成,例如MD5哈希计算),在随后的通信中,只有客户端在持有令牌且校验通过的情况下才能进行数据交互。
如果服务器部署为WEB网站,此Token可直接放入响应头部的Cookie中,在随后客户与服务器中通信中,服务器会对Cookie进行综合验证,综合验证主要包含交叉验证,综合验证通过则正常通信;同时Token应该具有以下特点:时效性、安全性、非唯一性、随机性。
数据加密:
服务器颁发的Token必须经过加密,防止恶意第三方能够任意伪造;多个Token根据原数据内容而选择不同的加密方案。比如涉及用户提交的id或key等敏感数据,需要在服务器进行二次校验,则应该采用可逆加密算法进行加密;其它非关键性数据则根据性能、安全性或效率采取对称或非对称算法进行加密,而服务端仅需根据客户请求数据进行综合验证。
工作原理:
在客户与服务器端反爬系统进行通信过程中,服务器端反爬系统会检测客户请求数据中是否携带访问令牌,无Token情况下对请求数据进行行为识别,确定是否颁发令牌;随后的所有正常请求中都会带上Token,服务端反爬系统针对每次请求,对Token进行正确性验证、时效性验证和交叉验证,交叉验证利用Token多个部分或其他数据进行相互校验,校验过程是随机动态的,可根据不同安全策略(具体策略需根据实际情况进行制定,例如:是否拒绝搜索引擎爬虫、是否拒绝所有爬虫、指定地址最高请求频率、Token数量、指定地址是否引入行为识别、恶意请求IP拉黑时长等等)设置对应的校验频率(比如每个请求有20%概率被选中校验),在请求行为正常的情况下,同时会颁发新的有效Token选择性替换原有Token;而这一切行为在一定范围内带有随机性,彻底增加请求数据的迷惑性,提高爬虫开发的分析难度。这一切对于正常请求的用户来讲,将会是无感知的,一切行为将由浏览器配合与服务端自动完成,具体工作流程见图1,结构框图如图2。
正常请求服务器端反爬系统会返回正确数据,异常请求服务器端反爬系统会返回错误数据,错误数据包括警告信息。
交叉验证的核心是:利用合适的方法扰乱爬虫开发者对Token的逆向分析,促其无法得知发起二次请求的方法;在此列举一种较为简单的交叉验证流程。已经判断某次请求为正常请求,准备返回响应Token,Token包含三部分(分别为A、B、C),A部分自己的加密密匙由系统内部随机生成,A的内容中包含B和C的名称、加密密匙,以及在下次请求中是否需要A、B和C所有Token,B或C部分中含有加密后的校验规则信息(例如:只能访问指定的URL地址,有效期时长等),B和C的加密方法与A部分中包括B、C部分的加密密匙相同;然后返回包含A、B、C三部分的Token;在下次请求中,系统获取请求Token,依次解密A、B、C,得出校验规则,再根据规则判断请求是否合法。所有的请求Token都必须包含A、B、C三个部分,如果服务器端解密后名称、校验规则和是否需要所有Token等这些信息有一个不正确,或未携带全A、B、C三个Token部分,则认为是异常请求。因为是交叉验证,所以Token至少两包含部分。
客户端:一般情况下为客户浏览器,用于发起请求。
服务器:接受客户请求的实际处理层,为反爬系统提供部署环境。
数据响应:一般情况下,这里将会是WEB逻辑数据响应层。
反爬系统:根据以上工作原理由开发人员开发的反爬程序,所有反爬策略和方案将在这里进行处理;例如PHP开发框架Laravel中,反爬系统可能将部署在“中间层”,开发人员根据实际场景进行开发。
整体工作流程:
A、发起请求:由客户端发起的请求,请求到达反爬系统之后,将由反爬系统进行逻辑处理决定是否返回响应数据。
B、响应数据:经由反爬系统处理之后的响应数据,如果是正常请求则为正确数据。
Claims (9)
1.一种后端反爬虫方法,其特征在于,该方法包括以下步骤:
步骤S1:服务器端反爬系统检测请求数据是否携带访问令牌,若是,执行步骤S3,若否,执行步骤S2;
步骤S2:服务器端反爬系统识别请求数据是否为恶意请求,若是,则执行步骤S5,若否,则产生访问令牌并执行步骤S4;
步骤S3:服务器端反爬系统对访问令牌进行交叉验证,若验证成功,则执行步骤S4,若验证失败,则执行步骤S5;
步骤S4:返回正确数据;
步骤S5:返回错误数据;
所述的服务器端反爬系统通过机器学习方法识别请求数据是否为恶意请求。
2.根据权利要求1所述的一种后端反爬虫方法,其特征在于,所述的机器学习方法为深度学习方法。
3.根据权利要求1所述的一种后端反爬虫方法,其特征在于,所述的错误数据包括警告信息。
4.根据权利要求1所述的一种后端反爬虫方法,其特征在于,所述的反爬系统包括PHP程序。
5.根据权利要求1所述的一种后端反爬虫方法,其特征在于,所述的步骤S3中,若验证成功,服务器端反爬系统产生新的访问令牌后选择性替换原有访问令牌,并执行步骤S4。
6.根据权利要求5所述的一种后端反爬虫方法,其特征在于,所述的原有访问令牌为加密后的原有访问令牌,所述服务器端反爬系统产生新的访问令牌进行加密后,选择性替换原有访问令牌。
7.根据权利要求1所述的一种后端反爬虫方法,其特征在于,所述的访问令牌至少包括一部和二部,所述一部包括二部信息,所述二部包括校验规则。
8.根据权利要求7所述的一种后端反爬虫方法,其特征在于,所述的一部加密方法由服务器端反爬系统生成,所述二部信息包括二部加密方法。
9.根据权利要求7所述的一种后端反爬虫方法,其特征在于,所述的交叉验证步骤包括:
服务器端反爬系统对访问令牌一部和二部进行解密;
服务器端反爬系统对解密后的二部信息和检验规则进行验证。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910753560.7A CN110581841B (zh) | 2019-08-15 | 2019-08-15 | 一种后端反爬虫方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910753560.7A CN110581841B (zh) | 2019-08-15 | 2019-08-15 | 一种后端反爬虫方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110581841A CN110581841A (zh) | 2019-12-17 |
CN110581841B true CN110581841B (zh) | 2022-10-14 |
Family
ID=68811296
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910753560.7A Active CN110581841B (zh) | 2019-08-15 | 2019-08-15 | 一种后端反爬虫方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110581841B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111371743A (zh) * | 2020-02-21 | 2020-07-03 | 上海红神信息技术有限公司 | 一种安全防御方法、装置及系统 |
CN111597424A (zh) * | 2020-07-21 | 2020-08-28 | 平安国际智慧城市科技股份有限公司 | 爬虫识别方法、装置、计算机设备和存储介质 |
CN113542223A (zh) * | 2021-06-16 | 2021-10-22 | 杭州拼便宜网络科技有限公司 | 基于设备指纹的反爬虫方法 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109582855A (zh) * | 2019-01-17 | 2019-04-05 | 北京三快在线科技有限公司 | 增强反爬系统识别性能的方法、装置和存储介质 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7035854B2 (en) * | 2002-04-23 | 2006-04-25 | International Business Machines Corporation | Content management system and methodology employing non-transferable access tokens to control data access |
US9152784B2 (en) * | 2012-04-18 | 2015-10-06 | Mcafee, Inc. | Detection and prevention of installation of malicious mobile applications |
CN107809317A (zh) * | 2017-11-09 | 2018-03-16 | 郑州云海信息技术有限公司 | 一种基于令牌数字签名的身份认证方法及系统 |
CN109309683B (zh) * | 2018-10-30 | 2021-09-14 | 泰华智慧产业集团股份有限公司 | 基于token的客户端身份验证的方法及系统 |
-
2019
- 2019-08-15 CN CN201910753560.7A patent/CN110581841B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109582855A (zh) * | 2019-01-17 | 2019-04-05 | 北京三快在线科技有限公司 | 增强反爬系统识别性能的方法、装置和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN110581841A (zh) | 2019-12-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Hong et al. | How you get shot in the back: A systematical study about cryptojacking in the real world | |
US10262142B2 (en) | Systems and methods for advanced dynamic analysis scanning | |
CN103888490B (zh) | 一种全自动的web客户端人机识别的方法 | |
CN102480490B (zh) | 一种用于防止csrf攻击的方法和设备 | |
US9716726B2 (en) | Method of identifying and counteracting internet attacks | |
CN105868635B (zh) | 用于应对恶意软件的方法和装置 | |
CN109933701B (zh) | 一种基于多策略融合的微博数据获取方法 | |
US11671448B2 (en) | Phishing detection using uniform resource locators | |
CN110581841B (zh) | 一种后端反爬虫方法 | |
US11381598B2 (en) | Phishing detection using certificates associated with uniform resource locators | |
Shrivastava et al. | XSS vulnerability assessment and prevention in web application | |
CN106790238A (zh) | 一种跨站请求伪造csrf防御认证方法和装置 | |
Gowtham et al. | PhishTackle—a web services architecture for anti-phishing | |
CN106331042B (zh) | 一种异构用户系统的单点登录方法及其装置 | |
US11356433B2 (en) | System and method for detecting unauthorized activity at an electronic device | |
CN111881337B (zh) | 一种基于Scrapy框架的数据采集方法、系统及存储介质 | |
CN116324766A (zh) | 通过浏览简档优化抓取请求 | |
Kapodistria et al. | An advanced web attack detection and prevention tool | |
Parimala et al. | Efficient web vulnerability detection tool for sleeping giant-cross site request forgery | |
Begou et al. | Exploring the Dark Side of AI: Advanced Phishing Attack Design and Deployment Using ChatGPT | |
Bozic et al. | Planning-based security testing of web applications | |
CN106888200A (zh) | 标识关联方法、信息发送方法及装置 | |
CN111666465A (zh) | 爬取数据的方法及装置、存储介质、终端 | |
US11470114B2 (en) | Malware and phishing detection and mediation platform | |
Algwil | Click-based Captcha paradigm as a web service |
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 |