一种基于TLS和webrtc的深度反爬方法、系统、设备、及介质与流程


一种基于tls和webrtc的深度反爬方法、系统、设备、及介质
技术领域
1.本发明涉及反爬虫技术领域,更具体地说,它涉及一种基于tls和webrtc的深度反爬方法、系统、设备、及介质。


背景技术:



2.公司的数据安全性是一个重要问题,如何保证数据不被竞争对手抓取,减少商业竞争。通常的做法是接入市面上的风控平台安全策略。但是目前市面上的主流风控策略,其大部分都是提高混淆难度,对于指纹检测并不严格,网上也出现了很多绕过方案,所以并不可取。
3.网站在开发过程中,考虑到安全问题需要对接口做安全处理,防止数据被爬虫抓取。一般的思路是使用网上免费的混淆工具混淆我们的javascript文件,增大识别难度,以及检测ip访问频率,或者使用付费的安全平台反爬策略,但是都存在一个问题,就是不够全面,而且也不够严格,例如画布信息,字体信息,音频指纹只提取不校验,https只涉及tcp握手成功后阶段,不涉及握手阶段等等,因此还有待改进的空间。


技术实现要素:



4.针对现有技术存在的不足,本发明的目的在于提供一种基于tls和webrtc的深度反爬方法、系统、设备、及介质,以解决背景技术中所提出的至少一技术问题。
5.本发明的上述技术目的是通过以下技术方案得以实现的:一种基于tls和webrtc的深度反爬方法,包括:
6.s1、获取携带有用户信息的tcp握手请求;
7.s2、根据所述tcp握手请求生成对应的tls指纹;
8.s3、将tls指纹和用户信息与redis指纹库进行数据比对,判断是否为恶意访问,若为否,则执行s4,若为是,则拒绝访问;
9.s4、根据tcp握手请求返回用于检测环境的javascript文件,获取用户返回的画布信息、字体信息、音频指纹和即时通信地址;
10.s5、判断所述即时通信地址与tcp握手请求的ip信息是否一致,若一致,则执行s6;若不一致,则拒绝访问;
11.s6、获取与画布信息、字体信息、音频指纹或即时通信地址完全一致的请求的访问频率,根据该访问频率和预设访问频率进行比对,若该访问频率大于预设访问频率,则拒绝访问并在封禁该即时通信地址或音频指纹。
12.可选的,所述根据所述tcp握手请求生成对应的tls指纹,包括:
13.根据所述tcp握手请求获取对应的tls信息;
14.将所述tls信息中的version、cipher suites、extension length、extension:elliptic_curves和extension:ec_pooint_formats进行组合并通过md5算法进行加密生成tls指纹。
15.可选的,所述将tls指纹和用户信息与redis指纹库进行数据比对,包括:
16.获取所有浏览器指纹及其对应的用户代理;
17.将各个浏览器指纹作为值,对应的用户代理作为键存储到redis指纹库中;
18.将所述tls指纹与所述redis指纹库中的各个浏览器指纹进行比对;若所述redis指纹库存在与tls指纹相同的浏览器指纹,则将该浏览器指纹对应的用户代理与tls指纹对应的用户信息进行比对,若该浏览器指纹对应的用户代理与tls指纹对应的用户信息一致,则判定不是恶意访问;若该浏览器指纹对应的用户代理与tls指纹对应的用户信息不一致,则判定为恶意访问;若redis指纹库不存在与tls指纹相同的浏览器指纹,则判定为恶意访问。
19.可选的,所述javascript文件用于对用户进行画布信息、字体信息和音频指纹检测,与用户进行webrtc以获取用户的即时通信地址;
20.所述获取用户返回的画布信息、字体信息、音频指纹和即时通信地址包括:
21.通过javascript文件获取用户的画布信息、字体信息和音频指纹;
22.通过webrtc获取用户的即时通信地址。
23.可选的,在所述将tls指纹和用户信息与redis指纹库进行数据比对之后,还包括:
24.通过混淆工具对javascript文件进行混淆。
25.可选的,在所述判断所述即时通信地址与tcp握手请求的ip信息是否一致,若一致,则执行s6之后,还包括:
26.将用户返回的画布信息、字体信息、音频指纹和即时通信地址存储到redis中间件中。
27.可选的,所述根据该访问频率和预设访问频率进行比对,还包括:
28.若该访问频率小于预设访问频率,则将redis中间件中的数据存储到redis中用于认证接口;
29.返回安全参数令牌。
30.一种基于tls和webrtc的深度反爬系统,包括:请求获取模块,用于获取携带有用户信息的tcp握手请求;
31.指纹生成模块,用于根据所述tcp握手请求生成对应的tls指纹;
32.指纹比对模块,用于将tls指纹和用户信息与redis指纹库进行数据比对,判断是否为恶意访问,若为否,则执行下一步骤,若为是,则拒绝访问;
33.环境检测模块,用于根据tcp握手请求返回用于检测环境的javascript文件,获取用户返回的画布信息、字体信息、音频指纹和即时通信地址;
34.ip比对模块,用于判断所述即时通信地址与tcp握手请求的ip信息是否一致,若一致,则执行下一步骤;若不一致,则拒绝访问;
35.频率判断模块,用于获取与画布信息、字体信息、音频指纹或即时通信地址完全一致的请求的访问频率,根据该访问频率和预设访问频率进行比对,若该访问频率大于预设访问频率,则拒绝访问并在封禁该即时通信地址或音频指纹。
36.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述的方法的步骤。
37.一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执
行时实现上述的方法的步骤。
38.综上所述,本发明具有以下有益效果:
39.(1)通过将tls指纹及用户信息与redis指纹库中的指纹数据及其对应的useragent进行比对,即可判定是否为正常浏览器访问,从而阻止python、nodejs等网络库进行访问;
40.(2)通过验证即时通信地址与tcp握手请求的ip信息是否一致,能够判定用户存在ip伪装,从而阻止ip伪装的用户进行访问;
41.(3)通过验证用户的访问频率,能够判定用户是否频繁范围,并将阻止频繁访问的用户进行访问。
附图说明
42.图1为本发明的流程示意图;
43.图2为本发明组装时的结构框图;
44.图3为本发明实施例中计算机设备的内部结构图。
具体实施方式
45.为使本发明的目的、特征和优点能够更加明显易懂,下面结合附图对本发明的具体实施方式做详细的说明。附图中给出了本发明的若干实施例。但是,本发明可以以许多不同的形式来实现,并不限于本文所描述的实施例。
46.在本发明中,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”、“固定”等术语应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本发明中的具体含义。术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。
47.在本发明中,除非另有明确的规定和限定,第一特征在第二特征之“上”或之“下”可以包括第一和第二特征直接接触,也可以包括第一和第二特征不是直接接触而是通过它们之间的另外的特征接触。而且,第一特征在第二特征“之上”、“上方”和“上面”包括第一特征在第二特征正上方和斜上方,或仅仅表示第一特征水平高度高于第二特征。第一特征在第二特征“之下”、“下方”和“下面”包括第一特征在第二特征正下方和斜下方,或仅仅表示第一特征水平高度小于第二特征。术语“垂直的”、“水平的”、“左”、“右”、“上”、“下”以及类似的表述只是为了说明的目的,而不是指示或暗示所指装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。
48.下面结合附图和实施例,对本发明进行详细描述。
49.本发明提供了一种基于tls和webrtc的深度反爬方法,如图1所示,包括:
50.s1、获取携带有用户信息的tcp握手请求;
51.s2、根据所述tcp握手请求生成对应的tls指纹;
52.s3、将tls指纹和用户信息与redis指纹库进行数据比对,判断是否为恶意访问,若
为否,则执行s4,若为是,则拒绝访问;
53.s4、根据tcp握手请求返回用于检测环境的javascript文件,获取用户返回的画布信息、字体信息、音频指纹和即时通信地址;
54.s5、判断所述即时通信地址与tcp握手请求的ip信息是否一致,若一致,则执行s6;若不一致,则拒绝访问;
55.s6、获取与画布信息、字体信息、音频指纹或即时通信地址完全一致的请求的访问频率,根据该访问频率和预设访问频率进行比对,若该访问频率大于预设访问频率,则拒绝访问并在封禁该即时通信地址或音频指纹。
56.在实际应用中,用户需要通过浏览器与网站进行tcp握手,tcp为传输控制协议(tcp,transmission control protocol)是一种面向连接的、可靠的、基于字节流的传输层通信协议,由ietf的rfc 793定义。故在进行tcp握手时,能够获取携带有用户信息的tcp握手请求,浏览器与网站之间建立的连接协议为tls协议,安全传输层协议(tls)用于在两个通信应用程序之间提供保密性和数据完整性。而对于同一个浏览器,其tls信息中具有一些参数是固定的,故将这些参数进行组合从而构成该浏览器对于的tls指纹,且该tls指纹与用户信息useragent是一一对应的,而对于python,nodejs等网络库的tls指纹并不存在对应的用户信息useragent;故通过redis指纹库很容易识别出来是恶意请求;redis(remote dictionary server),即远程字典服务,是一个开源的使用ansi c语言编写、支持网络、可基于内存亦可持久化的日志型、key-value数据库,并提供多种语言的api;若tls指纹与redis指纹库能够成功匹配,则需要进行javascript校验,javascript是一种具有函数优先的轻量级,解释型或即时编译型的编程语言;此时返回有检测环境的javascript文件,在javascript文件里,我们除了写入基本的画布信息,字体信息,音频指纹检测,还需要通过webrtc获取到真实ip,而webrtc(网页即时通信,web real-time communication)即使使用vpn代理上网仍然会暴露自己的真实ip地址,并作为即时通信地址;在本实施例中画布信息为canvas,字体信息为font,音频指纹为audio指纹,故而即时通信地址为用户的真实ip;而在tcp握手请求携带的用户信息中具有其对应的来源ip,故对ip进行比对,若即时通信地址与ip信息不一致,则判定为恶意请求,并封禁该ip一端时间;若一致,则对访问频率进行检测,若该ip或者画布信息,字体信息,音频指纹完全相同的请求在0.5秒之内访问过,则就认定为频繁访问,封禁该ip或者指纹一段时间;若该ip或者画布信息,字体信息,音频指纹完全相同的请求未在0.5秒之内访问过,则不认定为频繁访问,此时,可答复tcp握手请求。
57.进一步地,所述根据所述tcp握手请求生成对应的tls指纹,包括:
58.根据所述tcp握手请求获取对应的tls信息;
59.将所述tls信息中的version、cipher suites、extension length、extension:elliptic_curves和extension:ec_pooint_formats进行组合并通过md5算法进行加密生成tls指纹。
60.在实际应用中,由于浏览器在和网站进行tcp握手的时候,tls的version,cipher suites,extension length,extension:elliptic_curves,extension:ec_pooint_formats这些参数是固定的,他们组合在一起并进行md5加密即可生成唯一指纹,作为tls指纹。
61.可选的,所述将tls指纹和用户信息与redis指纹库进行数据比对,包括:
62.获取所有浏览器指纹及其对应的用户代理;
63.将各个浏览器指纹作为值,对应的用户代理作为键存储到redis指纹库中;
64.将所述tls指纹与所述redis指纹库中的各个浏览器指纹进行比对;若所述redis指纹库存在与tls指纹相同的浏览器指纹,则将该浏览器指纹对应的用户代理与tls指纹对应的用户信息进行比对,若该浏览器指纹对应的用户代理与tls指纹对应的用户信息一致,则判定不是恶意访问;若该浏览器指纹对应的用户代理与tls指纹对应的用户信息不一致,则判定为恶意访问;若redis指纹库不存在与tls指纹相同的浏览器指纹,则判定为恶意访问。
65.在实际应用中,把市面上常用的浏览器指纹作为值value和对应的useragent作为键key存入redis指纹库;并将与浏览器指纹不匹配的tls指纹、以及tls指纹与浏览器指纹相匹配,而该浏览器指纹所对应的用户代理与tls指纹对应的用户信息不一致的情况认定为恶意访问。
66.可选地,所述javascript文件用于对用户进行画布信息、字体信息和音频指纹检测,与用户进行webrtc以获取用户的即时通信地址;
67.所述获取用户返回的画布信息、字体信息、音频指纹和即时通信地址包括:
68.通过javascript文件获取用户的画布信息、字体信息和音频指纹;
69.通过webrtc获取用户的即时通信地址。
70.在实际应用中,在对用户访问网站的指纹进行认定通过后,会先返回我们检测环境的javascript文件,在javascript文件里,我们除了写入基本的画布信息,字体信息,音频指纹检测,还需要通过webrtc获取到真实ip。
71.在实际应用中,在部署javascript文件时,配置nginx里的ssl_certificate为crt证书路径,ssl_certificate_键为证书私钥键文件路径,ssl_ciphers为ssl加密所选用的算法ecdhe-rsa-aes128-gcm-sha256:high:!anull:!md5:!rc4:!dhe,ssl_protocols为ssl所支持的协议版本tlsv1.1 tlsv1.2,ssl_prefer_server_ciphers为开启模式on,使用uwsgi协议配置格式:include uwsgi_params;
72.uwsgi_param fp$ssl_ciphers;
73.uwsgi_param http2.0_fingerprint$server_protocol;
74.uwsgi_param tls_fingerprint_curves$ssl_curves。
75.进一步地,在所述将tls指纹和用户信息与redis指纹库进行数据比对之后,还包括:
76.通过混淆工具对javascript文件进行混淆。
77.在实际应用中,
78.进一步地,在所述判断所述即时通信地址与tcp握手请求的ip信息是否一致,若一致,则执行s6之后,还包括:
79.将用户返回的画布信息、字体信息、音频指纹和即时通信地址存储到redis中间件中。
80.在实际应用中,混淆工具对javascript文件进行混淆以增加破解难度,且混淆程序同前端的javascript文件一捅部署到服务器;常见的js混淆工具有以下几种:yui compressor、google closure compiler、uglifyjs、jscrambler和jshaman;在本实施例中选用jshaman。
81.进一步地,所述根据该访问频率和预设访问频率进行比对,还包括:
82.若该访问频率小于预设访问频率,则将redis中间件中的数据存储到redis中用于认证接口;
83.返回安全参数令牌。
84.在实际应用中,当用户的tcp握手请求通过所有的检测后,即可向用户返回安全参数令牌token,即可对正常访问的用户提供认证。
85.如图2所示,本发明还提供了一种基于tls和webrtc的深度反爬系统,包括:
86.请求获取模块10,用于获取携带有用户信息的tcp握手请求;
87.指纹生成模块20,用于根据所述tcp握手请求生成对应的tls指纹;
88.指纹比对模块30,用于将tls指纹和用户信息与redis指纹库进行数据比对,判断是否为恶意访问,若为否,则执行下一步骤,若为是,则拒绝访问;
89.环境检测模块40,用于根据tcp握手请求返回用于检测环境的javascript文件,获取用户返回的画布信息、字体信息、音频指纹和即时通信地址;
90.ip比对模块50,用于判断所述即时通信地址与tcp握手请求的ip信息是否一致,若一致,则执行下一步骤;若不一致,则拒绝访问;
91.频率判断模块60,用于获取与画布信息、字体信息、音频指纹或即时通信地址完全一致的请求的访问频率,根据该访问频率和预设访问频率进行比对,若该访问频率大于预设访问频率,则拒绝访问并在封禁该即时通信地址或音频指纹。
92.进一步地,所述指纹生成模块20,包括:
93.信息获取单元,用于根据所述tcp握手请求获取对应的tls信息;
94.信息加密单元,用于将所述tls信息中的version、cipher suites、extension length、extension:elliptic_curves和extension:ec_pooint_formats进行组合并通过md5算法进行加密生成tls指纹。
95.进一步地,所述指纹比对模块30,包括:
96.浏览器信息获取单元,用于获取所有浏览器指纹及其对应的用户代理;
97.指纹存储单元,用于将各个浏览器指纹作为值,对应的用户代理作为键存储到redis指纹库中;
98.指纹比对单元,用于将所述tls指纹与所述redis指纹库中的各个浏览器指纹进行比对;若所述redis指纹库存在与tls指纹相同的浏览器指纹,则将该浏览器指纹对应的用户代理与tls指纹对应的用户信息进行比对,若该浏览器指纹对应的用户代理与tls指纹对应的用户信息一致,则判定不是恶意访问;若该浏览器指纹对应的用户代理与tls指纹对应的用户信息不一致,则判定为恶意访问;若redis指纹库不存在与tls指纹相同的浏览器指纹,则判定为恶意访问。
99.进一步地,所述环境检测模块40,包括:
100.用户信息检测模块,用于通过javascript文件获取用户的画布信息、字体信息和音频指纹;
101.用户ip获取模块,用于通过webrtc获取用户的即时通信地址。
102.进一步地,所述系统还包括:
103.混淆模块,用于通过混淆工具对javascript文件进行混淆。
104.进一步地,所述系统还包括:
105.用户信息存储模块,用于将用户返回的画布信息、字体信息、音频指纹和即时通信地址存储到redis中间件中。
106.进一步地,所述频率判断模块60还包括:
107.数据存储单元,用于在该访问频率小于预设访问频率时将redis中间件中的数据存储到redis中用于认证接口;
108.参数返回单元,用于返回安全参数令牌。
109.关于一种基于tls和webrtc的深度反爬系统的具体限定可以参见上文中对于一种基于tls和webrtc的深度反爬方法的限定,在此不再赘述。上述一种基于tls和webrtc的深度反爬系统中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
110.在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图3所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机程序被处理器执行时以实现一种基于tls和webrtc的深度反爬方法。
111.本领域技术人员可以理解,图3中示出的结构,仅仅是与本技术方案相关的部分结构的框图,并不构成对本技术方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
112.在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现以下步骤:s1、获取携带有用户信息的tcp握手请求;
113.s2、根据所述tcp握手请求生成对应的tls指纹;
114.s3、将tls指纹和用户信息与redis指纹库进行数据比对,判断是否为恶意访问,若为否,则执行s4,若为是,则拒绝访问;
115.s4、根据tcp握手请求返回用于检测环境的javascript文件,获取用户返回的画布信息、字体信息、音频指纹和即时通信地址;
116.s5、判断所述即时通信地址与tcp握手请求的ip信息是否一致,若一致,则执行s6;若不一致,则拒绝访问;
117.s6、获取与画布信息、字体信息、音频指纹或即时通信地址完全一致的请求的访问频率,根据该访问频率和预设访问频率进行比对,若该访问频率大于预设访问频率,则拒绝访问并在封禁该即时通信地址或音频指纹。
118.在一个实施例中,所述根据所述tcp握手请求生成对应的tls指纹,包括:
119.根据所述tcp握手请求获取对应的tls信息;
120.将所述tls信息中的version、cipher suites、extension length、extension:elliptic_curves和extension:ec_pooint_formats进行组合并通过md5算法进行加密生成tls指纹。
121.在一个实施例中,所述将tls指纹和用户信息与redis指纹库进行数据比对,包括:
122.获取所有浏览器指纹及其对应的用户代理;
123.将各个浏览器指纹作为值,对应的用户代理作为键存储到redis指纹库中;
124.将所述tls指纹与所述redis指纹库中的各个浏览器指纹进行比对;若所述redis指纹库存在与tls指纹相同的浏览器指纹,则将该浏览器指纹对应的用户代理与tls指纹对应的用户信息进行比对,若该浏览器指纹对应的用户代理与tls指纹对应的用户信息一致,则判定不是恶意访问;若该浏览器指纹对应的用户代理与tls指纹对应的用户信息不一致,则判定为恶意访问;若redis指纹库不存在与tls指纹相同的浏览器指纹,则判定为恶意访问。
125.在一个实施例中,所述javascript文件用于对用户进行画布信息、字体信息和音频指纹检测,与用户进行webrtc以获取用户的即时通信地址;
126.所述获取用户返回的画布信息、字体信息、音频指纹和即时通信地址包括:
127.通过javascript文件获取用户的画布信息、字体信息和音频指纹;
128.通过webrtc获取用户的即时通信地址。
129.在一个实施例中,在所述将tls指纹和用户信息与redis指纹库进行数据比对之后,还包括:
130.通过混淆工具对javascript文件进行混淆。
131.在一个实施例中,在所述判断所述即时通信地址与tcp握手请求的ip信息是否一致,若一致,则执行s6之后,还包括:
132.将用户返回的画布信息、字体信息、音频指纹和即时通信地址存储到redis中间件中。
133.在一个实施例中,所述根据该访问频率和预设访问频率进行比对,还包括:
134.若该访问频率小于预设访问频率,则将redis中间件中的数据存储到redis中用于认证接口;
135.返回安全参数令牌。
136.本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本技术所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(rom)、可编程rom(prom)、电可编程rom(eprom)、电可擦除可编程rom(eeprom)或闪存。易失性存储器可包括随机存取存储器(ram)或者外部高速缓冲存储器。作为说明而非局限,ram以多种形式可得,诸如静态ram(sram)、动态ram(dram)、同步dram(sdram)、双数据率sdram(ddrsdram)、增强型sdram(esdram)、同步链路(synchlink)dram(sldram)、存储器总线(rambus)直接ram(rdram)、直接存储器总线动态ram(drdram)、以及存储器总线动态ram(rdram)等。
137.以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
138.以上所述仅是本发明的优选实施方式,本发明的保护范围并不仅局限于上述实施
例,凡属于本发明思路下的技术方案均属于本发明的保护范围。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理前提下的若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

技术特征:


1.一种基于tls和webrtc的深度反爬方法,其特征在于,包括:s1、获取携带有用户信息的tcp握手请求;s2、根据所述tcp握手请求生成对应的tls指纹;s3、将tls指纹和用户信息与redis指纹库进行数据比对,判断是否为恶意访问,若为否,则执行s4,若为是,则拒绝访问;s4、根据tcp握手请求返回用于检测环境的javascript文件,获取用户返回的画布信息、字体信息、音频指纹和即时通信地址;s5、判断所述即时通信地址与tcp握手请求的ip信息是否一致,若一致,则执行s6;若不一致,则拒绝访问;s6、获取与画布信息、字体信息、音频指纹或即时通信地址完全一致的请求的访问频率,根据该访问频率和预设访问频率进行比对,若该访问频率大于预设访问频率,则拒绝访问并在封禁该即时通信地址或音频指纹。2.根据权利要求1所述的方法,其特征在于,所述根据所述tcp握手请求生成对应的tls指纹,包括:根据所述tcp握手请求获取对应的tls信息;将所述tls信息中的version、cipher suites、extension length、extension:elliptic_curves和extension:ec_pooint_formats进行组合并通过md5算法进行加密生成tls指纹。3.根据权利要求2所述的方法,其特征在于,所述将tls指纹和用户信息与redis指纹库进行数据比对,包括:获取所有浏览器指纹及其对应的用户代理;将各个浏览器指纹作为值,对应的用户代理作为键存储到redis指纹库中;将所述tls指纹与所述redis指纹库中的各个浏览器指纹进行比对;若所述redis指纹库存在与tls指纹相同的浏览器指纹,则将该浏览器指纹对应的用户代理与tls指纹对应的用户信息进行比对,若该浏览器指纹对应的用户代理与tls指纹对应的用户信息一致,则判定不是恶意访问;若该浏览器指纹对应的用户代理与tls指纹对应的用户信息不一致,则判定为恶意访问;若redis指纹库不存在与tls指纹相同的浏览器指纹,则判定为恶意访问。4.根据权利要求3所述的方法,其特征在于,所述javascript文件用于对用户进行画布信息、字体信息和音频指纹检测,与用户进行webrtc以获取用户的即时通信地址;所述获取用户返回的画布信息、字体信息、音频指纹和即时通信地址包括:通过javascript文件获取用户的画布信息、字体信息和音频指纹;通过webrtc获取用户的即时通信地址。5.根据权利要求1所述的方法,其特征在于,在所述将tls指纹和用户信息与redis指纹库进行数据比对之后,还包括:通过混淆工具对javascript文件进行混淆。6.根据权利要求5所述的方法,其特征在于,在所述判断所述即时通信地址与tcp握手请求的ip信息是否一致,若一致,则执行s6之后,还包括:将用户返回的画布信息、字体信息、音频指纹和即时通信地址存储到redis中间件中。7.根据权利要求5所述的方法,其特征在于,所述根据该访问频率和预设访问频率进行
比对,还包括:若该访问频率小于预设访问频率,则将redis中间件中的数据存储到redis中用于认证接口;返回安全参数令牌。8.一种基于tls和webrtc的深度反爬系统,其特征在于,包括:请求获取模块,用于获取携带有用户信息的tcp握手请求;指纹生成模块,用于根据所述tcp握手请求生成对应的tls指纹;指纹比对模块,用于将tls指纹和用户信息与redis指纹库进行数据比对,判断是否为恶意访问,若为否,则执行下一步骤,若为是,则拒绝访问;环境检测模块,用于根据tcp握手请求返回用于检测环境的javascript文件,获取用户返回的画布信息、字体信息、音频指纹和即时通信地址;ip比对模块,用于判断所述即时通信地址与tcp握手请求的ip信息是否一致,若一致,则执行下一步骤;若不一致,则拒绝访问;频率判断模块,用于获取与画布信息、字体信息、音频指纹或即时通信地址完全一致的请求的访问频率,根据该访问频率和预设访问频率进行比对,若该访问频率大于预设访问频率,则拒绝访问并在封禁该即时通信地址或音频指纹。9.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至7中任一项所述的方法的步骤。10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7中任一项所述的方法的步骤。

技术总结


本发明涉及一种基于TLS和webrtc的深度反爬方法、系统、设备、及介质,其技术方案要点是:所述方法包括:获取携带有用户信息的TCP握手请求;根据所述TCP握手请求生成对应的TLS指纹;将TLS指纹和用户信息与redis指纹库进行数据比对,判断是否为恶意访问,若为是,则拒绝访问;根据TCP握手请求返回用于检测环境的JavaScript文件,获取用户返回的画布信息、字体信息、音频指纹和即时通信地址;判断即时通信地址与TCP握手请求的IP信息是否一致,若不一致,则拒绝访问;获取与画布信息、字体信息、音频指纹或即时通信地址完全一致的请求的访问频率,根据访问频率和预设访问频率进行比对,若访问频率大于预设访问频率,则拒绝访问;本申请具有能够防止数据被爬虫抓取的优点。本申请具有能够防止数据被爬虫抓取的优点。本申请具有能够防止数据被爬虫抓取的优点。


技术研发人员:

李亚平 唐磊 伍泳潮 黄壮强

受保护的技术使用者:

广州鑫景信息科技服务有限公司

技术研发日:

2022.08.26

技术公布日:

2022/11/25

本文发布于:2024-09-25 04:38:23,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/3/10061.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:指纹   所述   信息   频率
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议