1.本发明涉及网络数据安全保护领域,尤其涉及一种基于非对称二次加密的反爬虫方法及系统。
背景技术:
2.互联网上有着数不尽的网页,网页上存储着海量的信息,如果能得到这些数据进行数据分析,那么将会产生巨大的商业价值。因此也就产生了爬虫,一种能用于自动获取网页内容,并自动进行页面解析,提取数据相应内容的程序。现有的签名验证技术方案的缺点是该签名是在浏览器的前端生成,爬虫工程师可以先通过查看浏览器中的javascript代码,找到生成签名的函数方法,进而进行伪造签名,破解反爬虫。
技术实现要素:
3.为了解决上述技术问题,本发明的目的是提供一种基于非对称二次加密的反爬虫方法及系统,将第二次加密的加密函数放在服务器端,使得爬虫工程师无法破解加密参数的生成规则的,从而保护数据。
4.本发明所采用的第一技术方案是:一种基于非对称二次加密的反爬虫方法,包括以下步骤:
5.验证用户登录;
6.基于客户端进行一次加密,生成sign01;
7.响应于用户访问,调用rpc微服务验证sign01并在验证通过后进行二次加密,生成sign02;
8.用户基于sign02访问目标服务器,目标服务器验证成功,返回数据。
9.进一步,所述验证用户登录这一步骤,还包括:
10.用户提交账号密码登录并把cookies值写到客户端;
11.记录cookies值。
12.进一步,所述基于客户端进行一次加密,生成sign01这一步骤,其具体包括:
13.判断到用户登录成功,客户端基于预设规则通过javascript生成代码,得到sign01参数。
14.进一步,所述在验证通过后进行二次加密,生成sign02,其具体包括:
15.将业务请求参数按字母先后顺序排序;
16.将参数名称和参数值链接成一个字符串a;
17.在字符串a的尾部加上密钥组成一个新字符串b;
18.所述密钥存储在服务器端;
19.对字符串进行md5散列运算得到api签名sign并构建sign02。
20.本发明所采用的第二技术方案是:一种基于非对称二次加密的反爬虫系统,包括:
21.客户端,用于验证用户登录、记录cookies值、生成sign01和调用rpc微服务;
22.用户端,用于提交用户账号密码、访问服务器和接收返回数据;
23.服务器端,用于验证sign02并在验证通过后返回数据。
24.本发明方法及系统的有益效果是:本发明先通过登陆验证初步过滤用户,拒绝非法请求,通过采取二次加密技术,大大增加爬虫的难度,进一步,将第二次加密的加密函数放在服务器端,使得爬虫工程师是无法破解加密参数的生成规则的,从而保护数据。
附图说明
25.图1是本发明一种基于非对称二次加密的反爬虫方法的步骤流程图;
26.图2是本发明具体实施例的流程示意图。
具体实施方式
27.下面结合附图和具体实施例对本发明做进一步的详细说明。对于以下实施例中的步骤编号,其仅为了便于阐述说明而设置,对步骤之间的顺序不做任何限定,实施例中的各步骤的执行顺序均可根据本领域技术人员的理解来进行适应性调整。
28.参照图1和图2,本发明提供了一种基于非对称二次加密的反爬虫方法,部署一个微服务提供rpc远程调用生成sign签名功能,该方法包括以下步骤:
29.验证用户登录;
30.首先,用户浏览网页过程中,需要进行登录操作,登录操作即是用户过滤,即是把非法的用户拒绝访问。
31.基于客户端进行一次加密,生成sign01;
32.响应于用户访问,调用rpc微服务验证sign01并在验证通过后进行二次加密,生成sign02;
33.具体地,登录完毕,用户想要访问链接,需要访问微服务,需要进行一次参数验证,此时是javascript生成代码,在参数验证通过情况下,允许调用rpc生成sign参数。由于第二次sign加密参数,是rpc提供的,爬虫工程师无法知道服务器是如何生成加密参数,所以无法破解。
34.用户基于sign02访问目标服务器,目标服务器验证成功,返回数据。
35.具体地,用户在得到rpc服务器提供的sign参数后,访问目标服务器,目标服务器进行验证通过,就可以访问页面,获取数据
36.进一步作为本方法的优选实施例,所述验证用户登录这一步骤,还包括:
37.用户提交账号密码登录并把cookies值写到客户端;
38.记录cookies值。
39.进一步作为本方法的优选实施例,所述基于客户端进行一次加密,生成sign01这一步骤,其具体包括:
40.判断到用户登录成功,客户端基于预设规则通过javascript生成代码,得到sign01参数。
41.进一步作为本方法的优选实施例,所述在验证通过后进行二次加密,生成sign02,其具体包括:
42.将业务请求参数按字母先后顺序排序;
43.将参数名称和参数值链接成一个字符串a;
44.在字符串a的尾部加上密钥appsecret组成一个新字符串b;
45.例如:appsecret=dfhladkfhalkdshfa;dsdkfjhask;
46.所述密钥存储在服务器端;
47.对字符串进行md5散列运算得到api签名sign并构建sign02。
48.假设请求的参数为:f=1,b=23,k=33,排序后为b=23,f=1,k=33,参数名和参数值链接后为b23f1k33,尾部加上appsecret后,b23f1k33dfhladkfhalkdshfa;dsdkfjhask;
49.接着md5生成签名sign,sign=md5(b23f1k33dfhladkfhalkdshfa;dsdkfjhask)。
50.服务器端验证的时候按照该顺序进行验证。
51.一种基于非对称二次加密的反爬虫系统,包括:
52.客户端,用于验证用户登录、记录cookies值、生成sign01和调用rpc微服务;
53.用户端,用于提交用户账号密码、访问服务器和接收返回数据;
54.服务器端,用于验证sign02并在验证通过后返回数据。
55.上述方法实施例中的内容均适用于本系统实施例中,本系统实施例所具体实现的功能与上述方法实施例相同,并且达到的有益效果与上述方法实施例所达到的有益效果也相同。
56.以上是对本发明的较佳实施进行了具体说明,但本发明创造并不限于所述实施例,熟悉本领域的技术人员在不违背本发明精神的前提下还可做作出种种的等同变形或替换,这些等同的变形或替换均包含在本申请权利要求所限定的范围内。
技术特征:
1.一种基于非对称二次加密的反爬虫方法,其特征在于,包括以下步骤:验证用户登录;基于客户端进行一次加密,生成sign01;响应于用户访问,调用rpc微服务验证sign01并在验证通过后进行二次加密,生成sign02;用户基于sign02访问目标服务器,目标服务器验证成功,返回数据。2.根据权利要求1所述一种基于非对称二次加密的反爬虫方法,其特征在于,所述验证用户登录这一步骤,还包括:用户提交账号密码登录并把cookies值写到客户端;记录cookies值。3.根据权利要求2所述一种基于非对称二次加密的反爬虫方法,其特征在于,所述基于客户端进行一次加密,生成sign01这一步骤,其具体包括:判断到用户登录成功,客户端基于预设规则通过javascript生成代码,得到sign01参数。4.根据权利要求3所述一种基于非对称二次加密的反爬虫方法,其特征在于,所述在验证通过后进行二次加密,生成sign02,其具体包括:将业务请求参数按字母先后顺序排序;将参数名称和参数值链接成一个字符串a;在字符串a的尾部加上密钥组成一个新字符串b;所述密钥存储在服务器端;对字符串进行md5散列运算得到api签名sign并构建sign02。5.一种基于非对称二次加密的反爬虫系统,其特征在于,包括:客户端,用于验证用户登录、记录cookies值、生成sign01和调用rpc微服务;用户端,用于提交用户账号密码、访问服务器和接收返回数据;服务器端,用于验证sign02并在验证通过后返回数据。
技术总结
本发明公开了一种基于非对称二次加密的反爬虫方法及系统,该方法包括:验证用户登录;基于客户端进行一次加密,生成sign01;响应于用户访问,调用RPC微服务验证sign01并在验证通过后进行二次加密,生成sign02;用户基于sign02访问目标服务器,目标服务器验证成功,返回数据。该系统包括:客户端、用户端和服务器端。通过使用本发明,实现反爬虫的目的,保证信息的安全。本发明作为一种基于非对称二次加密的反爬虫方法及系统,可广泛应用于网络数据安全保护领域。全保护领域。全保护领域。
技术研发人员:游棉州 钟亚妹
受保护的技术使用者:广州南洋理工职业学院
技术研发日:2021.08.05
技术公布日:2021/11/4
转载请注明原文地址:https://doc.8miu.com/read-1719389.html