CN103634366A - 用于识别网络机器人的方法和设备 - Google Patents
用于识别网络机器人的方法和设备 Download PDFInfo
- Publication number
- CN103634366A CN103634366A CN201210315083.4A CN201210315083A CN103634366A CN 103634366 A CN103634366 A CN 103634366A CN 201210315083 A CN201210315083 A CN 201210315083A CN 103634366 A CN103634366 A CN 103634366A
- Authority
- CN
- China
- Prior art keywords
- script
- network robot
- client
- execution result
- name
- 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.)
- Pending
Links
Images
Landscapes
- Stored Programmes (AREA)
Abstract
本发明的各实施方式涉及一种用于识别网络机器人的方法和设备。具体地,提供了一种用于识别网络机器人的方法,该方法包括:向客户端发送脚本;从所述客户端接收所述脚本的执行结果;以及如果所述脚本的执行结果不正确,则将所述客户端识别为网络机器人。并且,提供了一种与用于识别网络机器人的方法对应的设备。
Description
技术领域
本发明的各实施方式总体上涉及计算机领域,并且更具体地涉及一种用于识别网络机器人的方法和设备。
背景技术
网络机器人一般是指在诸如因特网之类的网络上自动执行预定任务的软件程序。许多网络机器人被用于实现恶意目的以及/或者占用过多带宽资源和/或计算资源,因此识别这些网络机器人并限制其行为是非常重要的。又因为许多网络机器人在一定程度上可以模仿真实用户的行为,所以识别网络机器人往往是比较困难的。
例如,存在帮助网络游戏玩家取得不正当收益的网络机器人、在社交网络或论坛上自动发布广告的网络机器人、自动张贴指向某网站的链接以提高该网站的搜索引擎排名的网络机器人、在依赖于用户评价的网站(诸如,餐馆点评类网站、电子商务网站等)上自动发布用户评价的网络机器人、帮助用户进行抢购的网络机器人等等。
现有技术中一种识别网络机器人的措施是验证码,例如显示一串经过变形处理的字符串并要求客户端输入所显示的字符串,从而将不能正确识别该字符串的客户端识别为机器人。然而,使用验证码会劣化用户体验,并且已经存在通过计算机文字识别、图形识别、人力批量处理等方式来破解验证码的方法。
发明内容
本发明提供了一种用于识别网络机器人的方法和设备,利用所述方法和设备,能够以较高的准确率识别出网络机器人。
根据本发明的一方面,提供了一种用于识别网络机器人的方法,其包括以下步骤:向客户端发送脚本;从所述客户端接收所述脚本的执行结果;以及如果所述脚本的执行结果不正确,则将所述客户端识别为网络机器人。
根据本发明的另一方面,提供了一种用于识别网络机器人的设备,其包括:发送装置,配置用于向客户端发送脚本;接收装置,配置用于从所述客户端接收所述脚本的执行结果;以及识别装置,配置用于如果所述脚本的执行结果不正确,则将所述客户端识别为网络机器人。
附图说明
通过参考附图阅读下文的详细描述,本发明实施方式的上述以及其他目的、特征和优点将变得易于理解。在附图中,以示例性而非限制性的方式示出了本发明的若干实施方式,其中:
图1示出了根据本发明的一个实施方式的用于识别网络机器人的方法100的流程图;
图2示出了根据本发明的一个实施方式的用于识别网络机器人的设备200的示意性框图;以及
图3示出了适于用来实践本发明实施方式的计算机系统300的示意性框图。
具体实施方式
下面将参考若干示例性实施方式来描述本发明的原理和精神。应当理解,给出这些实施方式仅仅是为了使本领域技术人员能够更好地理解进而实现本发明,而并非以任何方式限制本发明的范围。
下面参考图1,其示出了根据本发明的一个实施方式的用于识别网络机器人的方法100的流程图。
在步骤S101中,向客户端发送脚本。在日常网络上的一些应用中,网络机器人可以模拟真实用户来提交信息(诸如,消息、日志等)。通常浏览器在向服务器提交信息时会产生HTTP(超文本传输协议)数据包,在该HTTP数据被包封装好之后,由于服务器无法区分该HTTP数据包是由网络机器人伪装好的还是由真实用户生成的,因此服务器需要向客户端发送脚本,以使浏览器进行额外的计算。
在步骤S102中,从所述客户端接收所述脚本的执行结果。在客户端接收到脚本之后,由浏览器对其进行执行,并将所述脚本的执行结果返回给服务器。由于只有浏览器才会对所述脚本进行执行从而得到执行结果,而如果网络机器人也期望得到脚本的执行结果,则需要对所述脚本进行执行,即,网络机器人需要将所述脚本解析并将其放入真正的容器中进行执行才能够得到该脚本对应的执行结果,这增加了网络机器人的开发成本,从而可以有效防止网络机器人。
在步骤S103中,如果所述脚本的执行结果不正确,则将所述客户端识别为网络机器人。由于向客户端发送的脚本是由服务器生成的,因此服务器知道该脚本的执行结果(即,服务器也会对所述脚本进行执行)。所以当从所述客户端接收所述脚本的执行结果不正确时(即,与服务器执行该脚本得到的执行结果不同),服务器可以将所述客户端识别为网络机器人。相应地,当从所述客户端接收所述脚本的执行结果正确时(即,与服务器执行该脚本得到的执行结果相同),服务器可以将所述客户端识别为真实用户。
在一个实施方式中,向客户端发送的脚本是JavaScript。这是因为JavaScript是一种动态、弱类型、基于原型的语言,通过浏览器便可以直接执行,也是目前网页中设计中最容易学又最方便的语言,并且大多数网络机器人还不具备对JavaScript的解析能力。
在一个实施方式中,向客户端发送的脚本是Flash。这是因为Flash在执行的时候是已经编译完的,网络机器人如果想从中截取包含在脚本中的算法几乎是不可能的(例如,网络机器人需要对该Flash进行反向工程,这大大增加了网络机器人的开发成本)。
在一个实施方式中,向客户端发送的脚本是随机生成的。通过此方式,避免了网络机器人预测脚本的执行结果。例如,网络机器人通过复制上一次脚本的执行结果来预测下一次脚本的执行结果等。
在一个实施方式中,随机生成所述脚本包括随机生成所述脚本中的参数和/或运算符。其中,参数和/或运算符可以包括但不限于:数字、符号、加、减、乘、除、与非、异或等,并且还可以限制运算长度(例如,最少需要进行4次运算,最多进行8次运算等)其中的运算过程完全随机。上述过程例如可以通过建立参数和/或运算符表,通过产生随机数从所述参数和/或运算符表中选取相应的参数和/或运算符进行运算的方式实现。通过此方式,如果网络机器人也期望得到所述脚本的执行结果,则网络机器人需要将所述脚本解析并将其放入真正的容器中进行执行才能够得到该脚本对应的执行结果,这增加了网络机器人的开发成本,从而可以有效防止网络机器人。
在一个实施方式中,向客户端发送的脚本是经过混淆的。例如,变量名可以使用ASCII来表示。当脚本被网络机器人捕获时,所显示的内容可能是乱码,从而可以有效避免简单的语义解析(主要是防止人对其进行解析)。
在一个实施方式中,所述混淆包括在所述脚本中改变以下中的一种或多种:缩进、空格、空行、注释、变量名、方法名、属性名、类名。
应当注意,上述处理过程对于客户端的浏览器而言是没有影响的,即,浏览器可以按照脚本中的步骤得到正确的脚本执行结果。并且,可以采用结合以上处理过程中的一种或多种的更复杂的算法来进行对网络机器人的识别。
在实际应用中,不宜过多使用根据本发明的实施方式的方法来识别网络机器人,这是因为有可能会使得网络机器人开发者以高成本开发出来符合本发明的实施方式的方法的网络机器人,并且上述网络机器人一旦被开发出来(由于其可复制性)便可以应用到所有需要用户提交信息的应用中。因此,优选地在关键业务上应用根据本发明的实施方式的方法来识别网络机器人。备选地或附加地,还可以在某些业务的流量突然猛增时,应用根据本发明的实施方式的方法来识别是否出现网络机器人,在所述业务的流量恢复正常后,停止使用根据本发明的实施方式的方法。
下面参考图2,其示出了根据本发明的一个实施方式的用于识别网络机器人的设备200的示意性框图。设备200包括:发送装置,配置用于向客户端发送脚本;接收装置,配置用于从所述客户端接收所述脚本的执行结果;以及识别装置,配置用于如果所述脚本的执行结果不正确,则将所述客户端识别为网络机器人。
在一个实施方式中,向客户端发送的脚本是JavaScript。
在一个实施方式中,向客户端发送的脚本是Flash。
在一个实施方式中,向客户端发送的脚本是随机生成的。
在一个实施方式中,随机生成所述脚本包括随机生成所述脚本中的参数和/或运算符。
在一个实施方式中,向客户端发送的脚本是经过混淆的。
在一个实施方式中,所述混淆包括在所述脚本中改变以下中的一种或多种:缩进、空格、空行、注释、变量名、方法名、属性名、类名。
为清晰起见,在图2中并未示出各个装置所包含的子装置。然而,应当理解,设备200中记载的装置与分别参考图1描述的方法100中的步骤相对应。由此,上文针对图1的方法100描述的操作和特征同样适用于设备200及其中包含的装置和子装置,在此不再赘述。
应当理解,设备200可以利用各种方式来实现。例如,在某些实施方式中,设备200可以利用软件和/或固件模块来实现。此外,设备200也可以利用硬件模块来实现。例如,设备200可以实现为集成电路(IC)芯片或专用集成电路(ASIC)。设备200也可以实现为片上系统(SOC)。此外,设备200也可以利用硬件模块和软件和/或固件模块的组合来实现。现在已知或者将来开发的其他方式也是可行的,本发明的范围在此方面不受限制。
图3示出了适于用来实践本发明实施方式的计算机系统300的示意性框图。如图3所示,计算机系统300可以包括:CPU(中央处理单元)301、RAM(随机存取存储器)302、ROM(只读存储器)303、系统总线304、硬盘控制器305、键盘控制器306、串行接口控制器307、并行接口控制器308、显示控制器309、硬盘310、键盘311、串行外部设备312、并行外部设备313和显示器314。在这些设备中,与系统总线304耦合的有CPU 301、RAM 302、ROM 303、硬盘控制器305、键盘控制器306、串行控制器307、并行控制器308和显示控制器309。硬盘310与硬盘控制器305耦合,键盘311与键盘控制器306耦合,串行外部设备312与串行接口控制器307耦合,并行外部设备313与并行接口控制器308耦合,以及显示器314与显示控制器309耦合。应当理解,图3所述的结构框图仅仅为了示例的目的而示出的,而不是对本发明范围的限制。在某些情况下,可以根据具体情况而增加或者减少某些设备。
应当注意,本发明的实施方式可以通过硬件、软件或者软件和硬件的结合来实现。硬件部分可以利用专用逻辑来实现;软件部分可以存储在存储器中,由适当的指令执行系统,例如微处理器或者专用设计硬件来执行。本领域的普通技术人员可以理解上述的设备和方法可以使用计算机可执行指令和/或包含在处理器控制代码中来实现,例如在诸如磁盘、CD或DVD-ROM的载体介质、诸如只读存储器(固件)的可编程的存储器或者诸如光学或电子信号载体的数据载体上提供了这样的代码。本发明的设备及其模块可以由诸如超大规模集成电路或门阵列、诸如逻辑芯片、晶体管等的半导体、或者诸如现场可编程门阵列、可编程逻辑设备等的可编程硬件设备的硬件电路实现,也可以用由各种类型的处理器执行的软件实现,也可以由上述硬件电路和软件的结合例如固件来实现。
应当注意,尽管在上文详细描述中提及了设备的若干装置或子装置,但是这种划分仅仅并非强制性的。实际上,根据本发明的实施方式,上文描述的两个或更多装置的特征和功能可以在一个装置中具体化。反之,上文描述的一个装置的特征和功能可以进一步划分为由多个装置来具体化。
此外,尽管在附图中以特定顺序描述了本发明方法的操作,但是,这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。相反,流程图中描绘的步骤可以改变执行顺序。附加地或备选地,可以省略某些步骤,将多个步骤合并为一个步骤执行,和/或将一个步骤分解为多个步骤执行。
虽然已经参考若干具体实施方式描述了本发明,但是应该理解,本发明并不限于所公开的具体实施方式。本发明旨在涵盖所附权利要求的精神和范围内所包括的各种修改和等同布置。所附权利要求的范围符合最宽泛的解释,从而包含所有这样的修改及等同结构和功能。
Claims (14)
1.一种用于识别网络机器人的方法,其包括以下步骤:
向客户端发送脚本;
从所述客户端接收所述脚本的执行结果;以及
如果所述脚本的执行结果不正确,则将所述客户端识别为网络机器人。
2.根据权利要求1所述的方法,其中所述脚本是JavaScript。
3.根据权利要求1所述的方法,其中所述脚本是Flash。
4.根据权利要求1所述的方法,其中所发送的脚本是随机生成的。
5.根据权利要求4所述的方法,其中随机生成所述脚本包括随机生成所述脚本中的参数和/或运算符。
6.根据权利要求1所述的方法,其中所发送的脚本是经过混淆的。
7.根据权利要求6所述的方法,其中所述混淆包括在所述脚本中改变以下中的一种或多种:缩进、空格、空行、注释、变量名、方法名、属性名、类名。
8.一种用于识别网络机器人的设备,其包括以下步骤:
发送装置,配置用于向客户端发送脚本;
接收装置,配置用于从所述客户端接收所述脚本的执行结果;以及
识别装置,配置用于如果所述脚本的执行结果不正确,则将所述客户端识别为网络机器人。
9.根据权利要求8所述的设备,其中所述脚本是JavaScript。
10.根据权利要求8所述的设备,其中所述脚本是Flash。
11.根据权利要求8所述的设备,其中所发送的脚本是随机生成的。
12.根据权利要求11所述的设备,其中随机生成所述脚本包括随机生成所述脚本中的参数和/或运算符。
13.根据权利要求8所述的设备,其中所发送的脚本是经过混淆的。
14.根据权利要求13所述的设备,其中所述混淆包括在所述脚本中改变以下中的一种或多种:缩进、空格、空行、注释、变量名、方法名、属性名、类名。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210315083.4A CN103634366A (zh) | 2012-08-27 | 2012-08-27 | 用于识别网络机器人的方法和设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210315083.4A CN103634366A (zh) | 2012-08-27 | 2012-08-27 | 用于识别网络机器人的方法和设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN103634366A true CN103634366A (zh) | 2014-03-12 |
Family
ID=50214985
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210315083.4A Pending CN103634366A (zh) | 2012-08-27 | 2012-08-27 | 用于识别网络机器人的方法和设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103634366A (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104601601A (zh) * | 2015-02-25 | 2015-05-06 | 小米科技有限责任公司 | 网络爬虫的检测方法及装置 |
CN106294368A (zh) * | 2015-05-15 | 2017-01-04 | 阿里巴巴集团控股有限公司 | 网络爬虫识别方法和装置 |
CN108027857A (zh) * | 2015-12-17 | 2018-05-11 | 谷歌有限责任公司 | 浏览器认证挑战和响应系统 |
CN113076550A (zh) * | 2021-04-16 | 2021-07-06 | 顶象科技有限公司 | 脚本文本的更新方法、脚本文本的加密方法及装置 |
CN115296828A (zh) * | 2022-03-28 | 2022-11-04 | 广东白云学院 | 验证方法、装置、计算机设备和存储介质 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1744525A (zh) * | 2005-09-22 | 2006-03-08 | 车欠军 | 一种防止在网络游戏中使用外挂的方法 |
CN101025775A (zh) * | 2007-01-19 | 2007-08-29 | 华为技术有限公司 | 一种防止网络游戏外挂软件的方法、系统及装置 |
US20090125885A1 (en) * | 2007-11-13 | 2009-05-14 | Nagabhushan Gayathri | Method and system for whitelisting software components |
CN101448005A (zh) * | 2008-12-24 | 2009-06-03 | 深圳市深信服电子科技有限公司 | 一种在网关进行数据安全检测方法、系统及设备 |
CN101667230A (zh) * | 2008-09-02 | 2010-03-10 | 北京瑞星国际软件有限公司 | 一种监控脚本执行的方法和装置 |
CN101883020A (zh) * | 2009-04-29 | 2010-11-10 | 丛林网络公司 | 检测恶意网络软件代理 |
CN101884047A (zh) * | 2007-10-05 | 2010-11-10 | 谷歌公司 | 侵入软件管理 |
CN102147842A (zh) * | 2010-07-23 | 2011-08-10 | 卡巴斯基实验室封闭式股份公司 | 防御网络资源上的恶意软件 |
CN102542207A (zh) * | 2010-12-07 | 2012-07-04 | 微软公司 | 虚拟机的反恶意软件保护 |
-
2012
- 2012-08-27 CN CN201210315083.4A patent/CN103634366A/zh active Pending
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1744525A (zh) * | 2005-09-22 | 2006-03-08 | 车欠军 | 一种防止在网络游戏中使用外挂的方法 |
CN101025775A (zh) * | 2007-01-19 | 2007-08-29 | 华为技术有限公司 | 一种防止网络游戏外挂软件的方法、系统及装置 |
CN101884047A (zh) * | 2007-10-05 | 2010-11-10 | 谷歌公司 | 侵入软件管理 |
US20090125885A1 (en) * | 2007-11-13 | 2009-05-14 | Nagabhushan Gayathri | Method and system for whitelisting software components |
CN101667230A (zh) * | 2008-09-02 | 2010-03-10 | 北京瑞星国际软件有限公司 | 一种监控脚本执行的方法和装置 |
CN101448005A (zh) * | 2008-12-24 | 2009-06-03 | 深圳市深信服电子科技有限公司 | 一种在网关进行数据安全检测方法、系统及设备 |
CN101883020A (zh) * | 2009-04-29 | 2010-11-10 | 丛林网络公司 | 检测恶意网络软件代理 |
CN102147842A (zh) * | 2010-07-23 | 2011-08-10 | 卡巴斯基实验室封闭式股份公司 | 防御网络资源上的恶意软件 |
CN102542207A (zh) * | 2010-12-07 | 2012-07-04 | 微软公司 | 虚拟机的反恶意软件保护 |
Non-Patent Citations (1)
Title |
---|
BOUND0: ""js脚本混淆&加密"", 《URL:HTTP://WWW.2CTO.COM/KF/201202/119488.HTML》 * |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104601601A (zh) * | 2015-02-25 | 2015-05-06 | 小米科技有限责任公司 | 网络爬虫的检测方法及装置 |
CN104601601B (zh) * | 2015-02-25 | 2018-09-04 | 小米科技有限责任公司 | 网络爬虫的检测方法及装置 |
CN106294368A (zh) * | 2015-05-15 | 2017-01-04 | 阿里巴巴集团控股有限公司 | 网络爬虫识别方法和装置 |
CN106294368B (zh) * | 2015-05-15 | 2019-11-05 | 阿里巴巴集团控股有限公司 | 网络爬虫识别方法和装置 |
CN108027857A (zh) * | 2015-12-17 | 2018-05-11 | 谷歌有限责任公司 | 浏览器认证挑战和响应系统 |
CN108027857B (zh) * | 2015-12-17 | 2021-07-20 | 谷歌有限责任公司 | 浏览器认证挑战和响应系统 |
CN113076550A (zh) * | 2021-04-16 | 2021-07-06 | 顶象科技有限公司 | 脚本文本的更新方法、脚本文本的加密方法及装置 |
CN115296828A (zh) * | 2022-03-28 | 2022-11-04 | 广东白云学院 | 验证方法、装置、计算机设备和存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Pandita et al. | {WHYPER}: Towards automating risk assessment of mobile applications | |
US8949243B1 (en) | Systems and methods for determining a rating for an item from user reviews | |
US9514113B1 (en) | Methods for automatic footnote generation | |
US20160210331A1 (en) | Similarity Engine for Facilitating Re-Creation of an Application Collection of a Source Computing Device on a Destination Computing Device | |
CN104428765A (zh) | 减少重定向 | |
CN103634366A (zh) | 用于识别网络机器人的方法和设备 | |
CN103064866A (zh) | 确定网络中的内容的关注度的方法和设备 | |
JP7254925B2 (ja) | 改良されたデータマッチングのためのデータレコードの字訳 | |
CN112486490B (zh) | 前端代码打包方法、装置、电子设备及存储介质 | |
CN102664874A (zh) | 一种安全登陆的方法和系统 | |
CN111198967A (zh) | 基于关系图谱的用户分组方法、装置及电子设备 | |
CN113641873B (zh) | 数据处理方法、装置、电子设备及可读存储介质 | |
CN112965916B (zh) | 页面测试方法、页面测试装置、电子设备及可读存储介质 | |
US20180314683A1 (en) | Method and device for processing natural language | |
US10419483B1 (en) | Time-bounded execution for privileged code | |
CN103544193A (zh) | 用于识别网络机器人的方法和设备 | |
CN103856476A (zh) | 用于识别网络机器人的方法和设备 | |
Pan et al. | Gray computing: A framework for computing with background javascript tasks | |
CN113535565B (zh) | 一种接口用例生成方法、装置、设备和介质 | |
CN112749351A (zh) | 链接地址确定方法、装置、计算机可读存储介质及设备 | |
CN110209572A (zh) | 用户界面测试方法、用户界面测试系统及终端 | |
CN107273362B (zh) | 数据处理方法及其设备 | |
CN115809193A (zh) | 前端逆向异常数据健壮性检测方法、装置及存储介质 | |
CN104407979A (zh) | 脚本检测方法和装置 | |
CN111400623B (zh) | 用于搜索信息的方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
EXSB | Decision made by sipo to initiate substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20140312 |
|
WD01 | Invention patent application deemed withdrawn after publication |