基于JavaScript堆栈信息检测模拟器的方法技术

技术编号:19009069 阅读:357 留言:0更新日期:2018-09-22 08:57
本发明专利技术为基于JavaScript堆栈信息检测模拟器的方法,所述方法包括:获取当前访问用户执行JavaScript发生错误的堆栈信息;对当前访问用户执行JavaScript发生错误的堆栈信息的堆栈信息和多种模拟器在执行JavaScript发生错误的堆栈信息进行匹配,若成功匹配到一种或多种模拟器在执行JavaScript发生错误的堆栈信息,则判断当前访问用户为该匹配类型模拟器,若无成功匹配对象,则判断此访问用户为使用某种浏览器的正常访问用户;最后根据得到的模拟器类型对当前访问用户进行处理。传统的检测方法都可以被有经验的爬虫人员添加一些伪装代码欺骗脚本进行绕过,而JavaScript的堆栈信息是语言运行时动态提供的,不能在模拟器中通过脚本直接进行篡改配合前端代码的混淆加密,有很好的隐蔽效果。

Method of detecting simulator based on JavaScript stack information

The invention is a method for detecting a simulator based on JavaScript stack information. The method includes: acquiring stack information of current access user executing JavaScript errors; stack information of current access user executing JavaScript errors and stack letters of multiple simulators executing JavaScript errors. If the stack information of one or more simulators is successfully matched, the current access user is judged to be the matching type simulator. If no matching object is found, the access user is judged to be the normal access user using a certain browser. Finally, the simulator class is obtained. Type handles current access users. Traditional detection methods can be bypassed by experienced crawlers by adding some masquerade code spoofing scripts. The stack information of JavaScript is dynamically provided by the language runtime. It can not be directly tampered with by scripts in the simulator with confusing encryption of the front-end code, which has a good hiding effect.

【技术实现步骤摘要】
基于JavaScript堆栈信息检测模拟器的方法
本专利技术具体涉及基于JavaScript堆栈信息检测模拟器的方法。
技术介绍
软件自动化测试的发展诞生了许多优秀的测试工具,比如安卓、浏览器的模拟器。测试人员通过编程来驱动模拟器打开应用、网页,点击按钮、提交表单,还能发送鼠标和键盘的动作事件来模拟真实的用户行为。这种模拟器测试工具有广泛的使用价值,比如作为爬虫来高频次的恶意访问某网站,产生大量的垃圾注册用户等。目前现有的区分正常浏览器用户和模拟器的方法如下表所示。但上述目前的方法均存在不小的技术缺陷,userAgent的缺点是模拟器都可以很轻易的修改成为任意正常的userAgent;plugins的缺点是模拟器可以在页面加载前将plugins设置为一个合理的值;callPhantom_phantom...的缺点是模拟器可以在页面加载前将这些属性和方法删除,并定义为不可枚举;alert判断延迟的缺点是网站弹出对话框会立即卡住页面,造成极不友好的用户体验模拟器也提供接口,可以设置页面弹框如何下一步操作;浏览器功能检测的缺点是在低版本浏览器中不可用,该检测在使用真实UI的模拟器中无效,兼容性检测的数量庞大,对比没有针对性,也没有特别有效的区分模拟器的方案,因为userAgent对应关系过多;用户行为跟踪的缺点是模拟器可以随机产生一些简单的点到点之间的鼠标移动,大多数Web开发人员并不熟悉如何区分判断出机器的行为轨迹,一般由某些安全服务公司提供,该检测在手机移动端会失效,因为触摸屏在单页操作时没有指针移动等滑屏操作。本专利技术可以通过分析堆栈信息来识别出特定的模拟器,从而区分出正常用户与模拟器。
技术实现思路
本专利技术要解决的技术问题在于,针对上述目前现有的识别特定模拟器的方法的技术缺陷,提供基于JavaScript堆栈信息检测模拟器的方法解决上述技术缺陷。基于JavaScript堆栈信息检测模拟器的方法,其特征在于,所述方法包括:S1、获取当前访问用户执行JavaScript发生错误时的堆栈信息;S2、对当前访问用户执行JavaScript发生错误时的堆栈信息与预设的多种模拟器在执行JavaScript发生错误时的堆栈信息进行匹配,若成功匹配到一种或多种模拟器在执行JavaScript发生错误时的堆栈信息,则判断当前访问用户为该匹配类型模拟器,进入步骤S3,若无成功匹配对象,则判断当前访问用户为使用某种浏览器的正常用户;S3、对当前访问用户进行处理。进一步的,所述访问用户具体是指浏览器或模拟器。进一步的,所述步骤S2中匹配一种或多种模拟器在执行JavaScript发生错误时的堆栈信息具体的方法是:HtmlUnit模拟器最后一行为@scriptin+JavaScript脚本的地址+from行号...to行号...;jsdom模拟器从下往上开始的一些堆栈中不包含http://之类的路径;PhantomJSCasperjs模拟器的最后一行为globalcode@+JavaScript脚本的地址。还涉及一种存储设备,其特征在于,所述存储设备存储指令及数据用于实现任意一种基于JavaScript堆栈信息检测模拟器的方法。还涉及基于JavaScript堆栈信息检测模拟器的系统,其特征在于,包括:处理器及所述存储设备;所述处理器加载并执行所述存储设备中的指令及数据用于实现任意一种基于JavaScript堆栈信息检测模拟器的方法。传统的检测方法都可以被有经验的爬虫人员添加一些伪装代码欺骗脚本进行绕过,而JavaScript的堆栈信息是语言运行时动态提供的,不能在模拟器中通过脚本直接进行篡改配合前端代码的混淆加密,有很好的隐蔽效果。附图说明下面将结合附图及实施例对本专利技术作进一步说明,附图中:图1为本专利技术基于JavaScript堆栈信息检测模拟器的方法的流程图。具体实施方式为了对本专利技术的技术特征、目的和效果有更加清楚的理解,现对照附图详细说明本专利技术的具体实施方式。基于JavaScript堆栈信息检测模拟器的方法,如图1所示,所述方法包括:S1、获取当前访问用户执行JavaScript发生错误的堆栈信息;S2、对当前访问用户执行JavaScript发生错误的堆栈信息的堆栈信息和多种模拟器在执行JavaScript发生错误的堆栈信息进行匹配,若成功匹配到一种或多种模拟器在执行JavaScript发生错误的堆栈信息,则判断当前访问用户为该匹配类型模拟器,进入步骤S3,若无成功匹配对象,则判断此访问用户为使用某种浏览器的正常访问用户;S3、根据步骤S2中得到的模拟器类型对当前访问用户进行处理,可限制其权限、禁止其访问、对其进行安全检测等。JavaScript是一种通用的浏览器脚本语言,简称JS。堆栈(stack)是指程序语言运行时会提供被执行函数的物理文件地址信息。模拟器是一种软件自动化测试的浏览器软件,功能和正常浏览器高度一致,可以看作是一种特殊构建的浏览器,它在底层功能实现上可能会比其他正常浏览器有所阉割和改变,因为模拟器通常是基于开源的浏览器项目去改写。一些模拟器在脚本发生错误时,抛出的堆栈信息会与正常浏览器有明显的格式差异,这是因为开发者自己改写了源代码的错误异常类。此处对比几款模拟器在执行JavaScript发生错误的堆栈信息:可以观察到:这几款模拟器堆栈信息的重要格式区别有:HtmlUnit模拟器最后一行为@scriptin+JavaScript脚本的地址+from(行号...)to(行号...);jsdom模拟器从下往上开始的一些堆栈中不包含http://之类的路径,因为这些脚本来自语言的系统内置文件中,而不是来自网站,并且某一行会暴露出jsdom源码的在机器上的硬盘文件路径;最后PhantomJSCasperjs模拟器的最后一行为globalcode@+JavaScript脚本的地址。上面结合附图对本专利技术的实施例进行了描述,但是本专利技术并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本专利技术的启示下,在不脱离本专利技术宗旨和权利要求所保护的范围情况下,还可做出很多形式,这些均属于本专利技术的保护之内。本文档来自技高网
...
基于JavaScript堆栈信息检测模拟器的方法

【技术保护点】
1.基于JavaScript堆栈信息检测模拟器的方法,其特征在于,所述方法包括:S1、获取当前访问用户执行JavaScript发生错误时的堆栈信息;S2、对当前访问用户执行JavaScript发生错误时的堆栈信息与预设的多种模拟器在执行JavaScript发生错误时的堆栈信息进行匹配,若成功匹配到一种或多种模拟器在执行JavaScript发生错误时的堆栈信息,则判断当前访问用户为该匹配类型模拟器,进入步骤S3,若无成功匹配对象,则判断当前访问用户为使用某种浏览器的正常用户;S3、对当前访问用户进行处理。

【技术特征摘要】
1.基于JavaScript堆栈信息检测模拟器的方法,其特征在于,所述方法包括:S1、获取当前访问用户执行JavaScript发生错误时的堆栈信息;S2、对当前访问用户执行JavaScript发生错误时的堆栈信息与预设的多种模拟器在执行JavaScript发生错误时的堆栈信息进行匹配,若成功匹配到一种或多种模拟器在执行JavaScript发生错误时的堆栈信息,则判断当前访问用户为该匹配类型模拟器,进入步骤S3,若无成功匹配对象,则判断当前访问用户为使用某种浏览器的正常用户;S3、对当前访问用户进行处理。2.根据权利要求1所述的基于JavaScript堆栈信息检测模拟器的方法,其特征在于,所述访问用户具体是指浏览器或模拟器。3.根据权利要求1所述的基于JavaScript堆栈信息检测模拟器的方法,其特征在于,所述步骤S2中匹配一种...

【专利技术属性】
技术研发人员:王济旺
申请(专利权)人:武汉极意网络科技有限公司
类型:发明
国别省市:湖北,42

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1