本发明涉及计算机,尤其涉及一种反爬虫方法和装置。
背景技术:
1、目前主流的前后端分离的web(world wide web,全球广域网)项目中,通常是通过前端发送ajax(asynchronous javascript and xml,异步javascript和xml)请求,请求后端数据接口。可以通过浏览器的调试工具,分析出接口的header、body等参数,甚至找出相应的规律。通过构造这些参数,能够在postman等接口调用工具,或者自动化脚本中,爬取到数据内容。
2、通常对于tob(to business)的业务来说,用户需要登录以获得响应的令牌,能够有的放矢的去封禁异常操作。但是对于toc(to customer)的项目来说,存在着匿名用户的访问场景,使得定位用户变得非常困难。目前应对匿名用户反爬方案有密钥过期制。它的缺点是若设置太短时间戳,页面时间停留过久会影响用户正常访问。设置太长,不能避免短时间高并发请求。
3、因此,为了提高数据的安全性,亟需一种安全可靠的反爬虫方法。
技术实现思路
1、本发明提供一种反爬虫方法和装置,用以解决现有技术中密钥过期制的反爬虫方案可靠性较差的缺陷。
2、本发明提供一种反爬虫方法,包括:
3、基于对称加密算法或非对称加密算法,对数据接口的入口参数进行加密,得到鉴权字符串,所述入口参数包括请求地址和请求体参数;
4、向服务端发送携带所述鉴权字符串的数据获取请求,以使所述服务端对所述数据获取请求进行鉴权认证。
5、根据本发明提供的反爬虫方法,所述基于对称加密算法,对数据接口的入口参数进行加密,得到鉴权字符串,包括:
6、基于md5加密算法,对所述入口参数进行加密,得到第一加密字符串;
7、基于对称加密算法中的工作密钥和初始化向量参数,对待加密文本进行加密,得到客户端加密文本;
8、将所述工作密钥、所述待加密文本和所述客户端加密文本进行拼接,得到第二加密字符串;
9、基于所述第一加密字符串和所述第二加密字符串,确定所述鉴权字符串。
10、根据本发明提供的反爬虫方法,所述将所述工作密钥、所述待加密文本和所述客户端加密文本进行拼接,得到第二加密字符串,包括:
11、将所述工作密钥、所述待加密文本和所述客户端加密文本进行拼接,得到拼接字符串;
12、将所述拼接字符串中的字符进行乱序处理,得到所述第二加密字符串。
13、根据本发明提供的反爬虫方法,所述基于非对称加密算法,对数据接口的入口参数进行加密,得到鉴权字符串,包括:
14、向服务端发送公钥获取请求,并获取所述服务端返回的公钥和id;
15、基于所述公钥和所述非对称加密算法,对数据接口的入口参数进行加密,得到所述鉴权字符串。
16、本发明还一种反爬虫方法,包括:
17、接收客户端发送的携带鉴权字符串的数据获取请求,所述鉴权字符串是客户端基于对称加密算法或非对称加密算法,对数据接口的入口参数进行加密得到的,所述入口参数包括请求地址和请求体参数;
18、对所述数据获取请求进行鉴权认证。
19、根据本发明提供的反爬虫方法,在所述鉴权字符串是客户端基于对称加密算法得到的情况下,所述鉴权字符串包括第一加密字符串和第二加密字符串,所述第一加密字符串是客户端基于md5加密算法对所述入口参数进行加密得到的,所述第二加密字符串是客户端基于所述对称加密算法对待加密文本进行加密得到的;
20、所述对所述数据获取请求进行鉴权认证,包括:
21、基于所述md5加密算法,对所述入口参数进行加密,得到第三加密字符串;
22、在所述第三加密字符串与所述第一加密字符串匹配成功的情况下,基于所述对称加密算法对所述第二加密字符串进行解析,得到所述对称加密算法的工作密钥和初始化向量,以及待加密文本和客户端加密文本;
23、基于所述工作密钥和初始化向量,对所述待加密文本进行加密,得到服务端加密文本;
24、基于所述客户端加密文本和所述服务端加密文本,对所述数据获取请求进行鉴权认证。
25、根据本发明提供的反爬虫方法,在所述鉴权字符串是客户端基于非对称加密算法得到的情况下,所述对所述数据获取请求进行鉴权认证,包括:
26、基于所述入口参数中的公钥和id,确定匿名用户标识;
27、基于所述公钥对应的私钥,对所述鉴权字符串进行解析,得到解密字符串;
28、基于所述匿名用户标识和所述解密字符串,对所述数据获取请求进行鉴权认证。
29、根据本发明提供的反爬虫方法,所述接收客户端发送的携带鉴权字符串的数据获取请求,之前还包括:
30、响应于客户端发送的公钥获取请求,基于预先存储的密钥对,将公钥和id返回至所述客户端,并记录所述公钥对应的私钥。
31、本发明还提供一种反爬虫装置,包括:
32、参数加密单元,用于基于对称加密算法或非对称加密算法,对数据接口的入口参数进行加密,得到鉴权字符串,所述入口参数包括请求地址和请求体参数;
33、请求发送单元,用于向服务端发送携带所述鉴权字符串的数据获取请求,以使所述服务端对所述数据获取请求进行鉴权认证。
34、本发明还提供一种反爬虫装置,包括:
35、请求接收单元,用于接收客户端发送的携带鉴权字符串的数据获取请求,所述鉴权字符串是客户端基于对称加密算法或非对称加密算法,对数据接口的入口参数进行加密得到的,所述入口参数包括请求地址和请求体参数;
36、鉴权认证单元,用于对所述数据获取请求进行鉴权认证。
37、本发明还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述任一种所述反爬虫方法。
38、本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上述任一种所述反爬虫方法。
39、本发明还提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现如上述任一种所述反爬虫方法。
40、本发明提供的反爬虫方法和装置,通过在客户端对数据接口的入口参数进行加密,得到鉴权字符串,其中入口参数包括请求地址和请求体参数。然后向服务端发送携带该鉴权字符串的数据获取请求,以使服务端对该数据获取请求进行鉴权认证,可以保证查询的唯一性,从而能够可靠地实现网页数据内容的反爬虫功能。
1.一种反爬虫方法,其特征在于,包括:
2.根据权利要求1所述的反爬虫方法,其特征在于,所述基于对称加密算法,对数据接口的入口参数进行加密,得到鉴权字符串,包括:
3.根据权利要求2所述的反爬虫方法,其特征在于,所述将所述工作密钥、所述待加密文本和所述客户端加密文本进行拼接,得到第二加密字符串,包括:
4.根据权利要求1所述的反爬虫方法,其特征在于,所述基于非对称加密算法,对数据接口的入口参数进行加密,得到鉴权字符串,包括:
5.一种反爬虫方法,其特征在于,包括:
6.根据权利要求5所述的反爬虫方法,其特征在于,在所述鉴权字符串是客户端基于对称加密算法得到的情况下,所述鉴权字符串包括第一加密字符串和第二加密字符串,所述第一加密字符串是客户端基于md5加密算法对所述入口参数进行加密得到的,所述第二加密字符串是客户端基于所述对称加密算法对待加密文本进行加密得到的;
7.根据权利要求5所述的反爬虫方法,其特征在于,在所述鉴权字符串是客户端基于非对称加密算法得到的情况下,所述对所述数据获取请求进行鉴权认证,包括:
8.根据权利要求7所述的反爬虫方法,其特征在于,所述接收客户端发送的携带鉴权字符串的数据获取请求,之前还包括:
9.一种反爬虫装置,其特征在于,包括:
10.一种反爬虫装置,其特征在于,包括: