CN113434838A - 一种基于js交互行为的人机验证检测方法 - Google Patents

一种基于js交互行为的人机验证检测方法 Download PDF

Info

Publication number
CN113434838A
CN113434838A CN202110709617.0A CN202110709617A CN113434838A CN 113434838 A CN113434838 A CN 113434838A CN 202110709617 A CN202110709617 A CN 202110709617A CN 113434838 A CN113434838 A CN 113434838A
Authority
CN
China
Prior art keywords
event
scene
trust score
deducting
behavior
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.)
Granted
Application number
CN202110709617.0A
Other languages
English (en)
Other versions
CN113434838B (zh
Inventor
陆洋
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Jiangsu 365 Network Co ltd
Original Assignee
Jiangsu 365 Network Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Jiangsu 365 Network Co ltd filed Critical Jiangsu 365 Network Co ltd
Priority to CN202110709617.0A priority Critical patent/CN113434838B/zh
Publication of CN113434838A publication Critical patent/CN113434838A/zh
Application granted granted Critical
Publication of CN113434838B publication Critical patent/CN113434838B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/31User authentication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q30/00Commerce
    • G06Q30/018Certifying business or products
    • G06Q30/0185Product, service or business identity fraud
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2133Verifying human interaction, e.g., Captcha

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Business, Economics & Management (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Accounting & Taxation (AREA)
  • Development Economics (AREA)
  • Economics (AREA)
  • Finance (AREA)
  • Marketing (AREA)
  • Strategic Management (AREA)
  • General Business, Economics & Management (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明公开了一种基于JS交互行为的人机验证检测方法,其特征在于,包括步骤1,服务端向评分系统发送调用请求,服务端基于业务的sessionID存储realToken;步骤2,在客户端中,JS‑SDK对mixToken解密校验以获得realToken,将所述realToken混淆排列生成JsmixToken;步骤3,设置监听收集模块得到交互事件的参数信息,向服务端上报;步骤4,设置评分组件对参数信息进行反序列化解析,输入行为分析模块,得到交互事件分析结果。达到能够基于交互行为数据分析实现自动测定评分,通过设有监听收集模块监听并收集用户产生的交互事件的参数信息,分析出模拟登陆的响应请求以及拟态交互的伪造请求,为业务系统提供评定标准,结合外部环境技术不断优化分析模型,不断提高人机检测的准确率的效果。

Description

一种基于JS交互行为的人机验证检测方法
技术领域
本发明涉及Web开发领域,特别是涉及一种基于JS交互行为的人机验证检测方法。
背景技术
在WEB开发领域,平台为了提高流量经常会需要开发一些签到抽奖,领红包等网页应用。这些产品设计的初衷是为了让真实用户参与到活动中,在完成相应的任务后可以获得相应的奖励,然而一些投机者经常会通过脚本程序等方式,利用机器进行的大量的模拟请求,不但会对服务器带来许多负载压力,还会影响到真实用户的正常参与,最终导致线上推广活动质量及口碑的下降,对平台带来诸多不利影响。
随着互联网技术高速发展,目前还可以利用脚本等方式快速实现基于浏览器驱动交互的仿真行为,计算机会模拟人的操作,根据设置好的脚本程序对页面进行交互操作等,相比于接口模拟调用的方式更加隐蔽,不易被平台侦测。
专利CN201711308348-WEB页面的人机识别验证方法、系统、设备和存储介质,通过提取表单提交前的鼠标动作和键盘点击动作,进行初步判定,对无法判定的疑似问题操作,生成相应的难度不同的验证码,并对验证码的点选过程进行记录再分析,得到最终的判定结果,但其适用场景需以web页面的表单输入为背景,才能展开后续判定,且设置的判定项具有较强的针对性,仅在针对表单及相应验证码场景时能达成预期的判定效果,不适合直接应用于本案场景,具有应用的局限性。
专利CN202011440525-一种人机验证方法及装置,通过对鼠标动作的捕捉,输入具有针对性的分析模型分析,判定得到验证结果,具体是以鼠标每次点击(按下)为分割,检验每个分割片段中的鼠标运动参数,从而进行人机验证,但人机验证的真实应用场景中,并非只存在鼠标动作,也不可避免的要面对键盘操作或移动端的触屏操作,且都有其特殊性,无法把鼠标动作的人机验证直接迁移到其他操作场景中,也并非经过简单或显而易见的改进可以完成,在复杂的真实应用场景中有应用的局限性,尤其无法应用于本案场景。
基于以上情况,需要设计一种通用组件,能对curl等模拟请求有鉴别防护,还能对用户在客户端的交互操作行为进行收集,并对客户端发起的网络数据请求进行分析测评,识别通过机器模拟的非真实用户。在此过程中,需要考虑到与业务代码的解耦性设计,在保证业务正常开发前提下,组件能做到快速植入,对客户端交互请求进行分析测评,快速找出无效的模拟请求,并制定相应的处理策略。
发明内容
本发明所要解决的技术问题是克服现有技术的不足,提供一种基于JS交互行为的人机验证检测方法。
为解决上述技术问题,本发明提供一种基于JS交互行为的人机验证检测方法,其特征在于,包括如下步骤:
步骤1,用户在客户端发送请求,服务端在业务响应发送之前,向评分系统发送调用请求,所述评分系统用以获取加密混淆过的mixToken,具体为:在评分系统中根据当前业务场景的sessionID生成realToken和disturbToken,对realToken和disturbToken做混淆排列生成mixToken,在业务响应头部加入mixToken,服务端在向客户端返回业务响应前,基于业务的sessionID存储realToken;
步骤2,在客户端中封装评分系统的JS-SDK,所述JS-SDK对mixToken解密校验以获得realToken,将所述realToken混淆排列生成JsmixToken;
步骤3,在JS-SDK中设置监听收集模块,所述监听收集模块监听并收集用户产生的交互事件,得到参数信息,所述交互事件包括:web端的键盘动作、鼠标动作和移动端的触屏动作,所述参数信息以数组追加的方式临时存储在JS-SDK的指定变量中,所述参数信息分类做格式化并进行序列化加密,在预设的关键时间节点向服务端上报,所述关键时间节点是指用户点击相关的提交按钮时;
步骤4,在服务端设置评分组件,所述评分组件用于接收客户端上报的参数信息,对序列化加密的参数信息进行反序列化解析;所述评分组件中预设行为分析模块,将反序列化解析的参数信息输入行为分析模块用于交互事件分析,得到交互事件分析结果。
所述步骤1中,所述混淆排列的混淆规则具体为:随机生成16位的realToken和16位的disturbToken,将realToken和disturbToken按奇偶位穿插组合,组合成32位的字符串mixToken,所述奇偶位穿插组合具体为:所述realToken占奇数位从尾部逆向插入,所述disturbToken占偶数位从头部顺向插入。
所述步骤2中,所述JsmixToken的生成方法遵循所述步骤1中的混淆规则,对JS代码进行控制流平坦化,使用nodeJS平台及工具uglyfy对JS代码进行压缩丑化,用于生成不止一套JS-SDK,服务端响应请求页面时随机切换JS-SDK;禁用浏览器控制台DEBUG。
所述步骤3中,所述参数信息为Base64编码,使用Json对所述参数信息序列化加密,所述参数信息分类成参数项,所述参数项包括:JsMixToken、客户端IP、ActiveLogs、BusinessInfo;所述客户端IP由客户端通过JSOP方式跨域获取,用于后续与服务端识别IP进行核验;所述ActiveLogs由JS-SDK中的监听收集模块监听收集,包括交互事件产生的log记录,所述log记录包括:操作类型、屏幕坐标、时间信息,所述操作类型包括:键盘输入、滑动动作、鼠标移动、鼠标点击、触屏输入、触屏点击、触屏滑动,所述屏幕坐标包括:X轴页面点位、Y轴页面点位,所述时间信息包括时间戳,所述时间戳精确到毫秒级;所述BusinessInfo包含业务的sessionID。
所述步骤4中,所述评分组件中包括用于对JsMixToken进行校验防伪、对IP业务限流和用户身份识别的过滤器;所述IP业务限流具体为:由服务端根据HTTP请求信息获取X_FORWARD_FOR,对多层反向代理的请求做内网过滤,得到IP,用于与之前客户端提报上的IP进行对比,若不相同,则判定为异常请求并进行拦截;所述用户身份识别具体为:指定登陆用户状态为Session形式或Token形式。
所述步骤4中,所述评分组件中包括行为分析模块,所述行为分析模块用于测算分析ActiveLogs中的log记录,所述行为分析模块中,正常交互事件与非正常交互事件所产生的参数信息之间的差异设置为测算维度,所述测算分析中设有总信任分、第一信任分、第二信任分,测算分析的结果为最终信任分,当最终信任分低于第一信任分时,则判定为疑似机器行为,当最终信任分低于第二信任分时,则判定为确认机器行为。
所述步骤4中,所述测算分析的测算维度具体包括:
对IP进行计数,结合业务场景提前配置IP请求的上限次数,对预设时间区间内超出IP请求的上限次数的请求做限流屏蔽;
预设同IP互斥锁,所述同IP互斥锁用于:同一IP在同一时间发起多次请求,只允许第一次请求上报到服务端,对其他请求进行屏蔽;
分析HTTP请求信息中是否包含关键词,若PC端场景的HTTP请求信息包含关键词,则扣除信任分,若移动端场景的HTTP请求信息不包含关键词,则扣除信任分;
对ActiveLogs的第一项设置启动时间检查的阈值,若所述启动时间低于所述阈值,则扣除信任分;
对日志时间做间距检测,将间距检测的结果与JS端所设置的时间间隔进行比对获得误差,将所述误差对比预设的误差阈值进行判定;若误差大于所述误差阈值,则扣除信任分;
检测移动事件中的坐标数据,所述移动事件包括鼠标移动及触屏滑动,所述坐标数据具体指移动事件所产生的X轴页面点位及Y轴页面点位,当检测出坐标数据超出屏幕分辨率时,扣除信任分;
检测点击事件场景中是否存在点击动作,所述点击事件场景具体指一定会产生点击动作的业务场景,所述点击动作包括鼠标点击及触屏点击,若未检测到点击动作,则扣除信任分;
检测点击事件场景中是否存在同像素点,所述同像素点具体指多次交互事件所包含的点击动作,其像素点的屏幕坐标完全一致,则认定为疑似录制行为,扣除信任分;
检测是否存在触屏点击事件伪造,若在移动端业务场景中上报的ActiveLogs里检测到包含鼠标点击动作,则认定为触屏点击事件伪造,扣除信任分
检测连续输入事件的时间间隔,将所述时间间隔对比预设的间隔阈值进行判定,如所述时间间隔低于间隔阈值,则扣除信任分;
检测输入事件场景中是否存在输入动作,所述输入事件场景具体指一定会产生输入动作的业务场景,所述输入动作包括键盘输入和触屏输入,若未检测到输入动作,则扣除信任分;
检测滑动事件场景中是否存在Y轴方向的滑动动作,所述滑动事件场景具体指一定会产生Y轴方向的滑动动作的业务场景,所述Y轴方向的滑动动作包括PC端页面上下滑动或触屏端上下滑动,若未检测到Y轴滑动,则扣除信任分;
检测多次交互事件所产生的操作类型的集合是否完全一致,若完全一致,则扣除信任分。
所述步骤4中,所述测算分析的总信任分设为100分,第一信任分设为60分,第二信任分设为40分,测算维度还包括:
所述分析HTTP请求信息中是否包含关键词中,所述关键词包含AppleWebKit、Mobile、Mac、Android、iPhone、iPad,若PC端场景的HTTP请求信息包含关键词,则扣除20信任分,若移动端场景的HTTP请求信息不包含关键词,则扣除20信任分;
所述对ActiveLogs的第一项设置启动时间检查的阈值中,所述启动时间检查的阈值为300毫秒,若所述启动时间低于所述阈值,则扣除10信任分;
所述对日志时间做间距检测中,所述误差阈值为100毫秒,若误差大于所述误差阈值,则扣除30信任分;
所述检测移动事件中的坐标数据格式中,若检测出坐标数据超出屏幕分辨率时,扣除30信任分;
所述检测点击事件场景中是否存在点击动作中,若未检测到点击动作,则扣除20信任分;
所述检测点击事件场景中是否存在同像素点中,若认定为疑似录制行为,扣除30信任分;
所述检测是否存在触屏点击事件伪造中,若认定为触屏点击事件伪造,扣除30信任分;
所述检测连续输入事件的时间间隔中,所述间隔阈值为100毫秒,若所述时间间隔低于间隔阈值,则扣除30信任分;
所述检测输入事件场景中是否存在输入动作中,若未检测到输入动作,则扣除20信任分;
所述检测滑动事件场景中是否存在Y轴方向的滑动动作中,若未检测到Y轴滑动,则扣除20信任分;
所述检测多次交互事件所产生的操作类型的集合是否完全一致中,若完全一致,则扣除30信任分。
本发明所达到的有益效果:能够基于行为数据分析实现自动测定评分,通过设有监听收集模块监听并收集用户产生的交互事件,得到参数信息,所述参数信息分类做格式化并进行序列化加密,分析出模拟登陆的响应请求以及拟态交互的伪造请求,为业务系统提供评定标准,结合外部环境技术不断优化分析模型,不断提高人机检测的准确率。
附图说明
图1为本发明实施例的方法流程示意图;
图2为本发明实施例的JS-SDK序列化上报数据格式示意图;
图3为本发明实施例的ActiveLogs结构示意图;
图4为本发明实施例的评分组件结果展示示意图。
具体实施方式
本发明针对表单抢红包、登陆签到等Web应用,提供了一种基于JS事件行为分析上报的测评方法,能与各具体业务场景结合,后台的分析系统基于上报行为,在完成测评模型后会给出具体分值以及特征标签,同时可以在后台审查环节完整录放等功能,最终达到能够区分机器人与真实用户的目的。
如图1所示的一种基于JS交互行为的人机验证检测方法,基于加密、解密、上报、分析的流程运行,包括如下步骤:
步骤1,用户在客户端发送请求,服务端在业务响应发送之前,向评分系统发送调用请求,所述评分系统用以获取加密混淆过的mixToken,具体为:在评分系统中根据当前业务场景的sessionID生成realToken和disturbToken,对realToken和disturbToken做混淆排列生成mixToken,在业务响应头部加入mixToken,服务端在向客户端返回业务响应前,基于业务的sessionID存储realToken;
所述混淆排列的混淆规则具体为:随机生成16位的realToken和16位的disturbToken,将realToken和disturbToken按奇偶位穿插组合,组合成32位的字符串mixToken,所述奇偶位穿插组合具体为:所述realToken占奇数位从尾部逆向插入,所述disturbToken占偶数位从头部顺向插入。
步骤2,在客户端中封装评分系统的JS-SDK,所述JS-SDK对mixToken解密校验以获得realToken,所述解密校验按步骤1中的混淆规则逆向操作,将所述realToken混淆排列生成JsmixToken;
所述JsmixToken的生成方法遵循所述步骤1中的混淆规则,为了保护JS-SDK中的前端代码逻辑,对JS代码进行控制流平坦化,使用nodeJS平台及工具uglyfy对JS代码进行压缩丑化,用于生成不止一套JS-SDK,服务端响应请求页面时随机切换JS-SDK;禁用浏览器控制台DEBUG,以防止客户端代码被单步调试。
步骤3,在JS-SDK中设置监听收集模块,用以监听收集用户产生的交互事件,得到收集数据,所述监听收集模块监听并收集用户产生的交互事件,得到参数信息,所述交互事件包括:web端的键盘动作、鼠标动作和移动端的触屏动作,所述参数信息以数组追加的方式临时存储在JS-SDK的指定变量中,所述参数信息分类做Json格式化并进行Base64编码的序列化加密,在预设的关键时间节点向服务端上报,所述关键时间节点是指用户点击相关的提交按钮时,比如点击签到按钮或者点击抢红包按钮;
所述步骤3中,所述参数信息为Base64编码,使用Json对所述参数信息序列化加密,所述参数信息分类成参数项,如图2所示的,所述参数项包括:JsMixToken、客户端IP、ActiveLogs、BusinessInfo;所述客户端IP由客户端通过JSOP方式跨域获取,用于后续与服务端识别IP进行核验;所述ActiveLogs由JS-SDK中的监听收集模块监听收集,如图3所示的,每个ActiveLog都包括交互事件产生的log记录,所述log记录包括:操作类型、屏幕坐标、时间信息,所述操作类型包括:键盘输入、滑动动作、鼠标移动、鼠标点击、触屏输入、触屏点击、触屏滑动,所述屏幕坐标包括:X轴页面点位、Y轴页面点位,所述时间信息包括时间戳,所述时间戳精确到毫秒级;所述BusinessInfo包含业务的sessionID。
步骤4,在服务端设置评分组件,所述评分组件用于接收客户端上报的参数信息,对序列化加密的参数信息进行反序列化解析;所述评分组件中预设行为分析模块,将反序列化解析的参数信息输入行为分析模块用于交互事件分析,得到交互事件分析结果。
所述步骤4中,所述评分组件中包括用于对JsMixToken进行校验防伪、对IP业务限流和用户身份识别的过滤器;所述IP业务限流具体为:由服务端根据HTTP请求信息获取X_FORWARD_FOR,对多层反向代理的请求做内网过滤,得到IP,用于与之前客户端提报上的IP进行对比,若不相同,则判定为异常请求并进行拦截;所述用户身份识别具体为:指定登陆用户状态为Session形式或Token形式。
所述步骤4中,所述评分组件中包括行为分析模块,所述行为分析模块用于测算分析ActiveLogs中的log记录,所述行为分析模块中,事件交互产生的每个点会有具体的毫秒级时间戳以及屏幕坐标,服务端行为分析器会分析这些交互点数据,正常交互事件(真实用户产生的)与非正常交互事件(通过模拟工具)所产生的参数信息之间的差异设置为测算维度,如图4所示的一种实施例,所述测算分析中设有总信任分100分、第一信任分60分、第二信任分40分,测算分析的结果为最终信任分,当最终信任分低于第一信任分时,则判定为疑似机器行为,当最终信任分低于第二信任分时,则判定为确认机器行为。
所述步骤4中,所述测算分析的测算维度具体包括:
对IP进行计数,结合业务场景提前配置IP请求的上限次数,对预设时间区间内超出IP请求的上限次数的请求做限流屏蔽;
预设同IP互斥锁,所述同IP互斥锁用于:同一IP在同一时间发起多次请求,只允许第一次请求上报到服务端,对其他请求进行屏蔽;
分析HTTP请求信息中是否包含关键词,所述关键词包含AppleWebKit、Mobile、Mac、Android、iPhone、iPad,若PC端场景的HTTP请求信息包含关键词,则扣除20信任分,若移动端场景的HTTP请求信息不包含关键词,则扣除20信任分。例如PC端场景的HTTP请求信息包含关键词Mobile,则扣除20信任分;
对ActiveLogs的第一项设置启动时间检查的阈值,所述启动时间检查的阈值为300毫秒,若所述启动时间低于所述阈值,则扣除10信任分。例如ActiveLogs的第一项启动时间为280毫秒,则扣除10信任分;ActiveLogs的第一项启动时间为350毫秒,则不扣除信任分;
对日志时间做间距检测,将间距检测的结果与JS端所设置的时间间隔进行比对获得误差,将所述误差对比预设的误差阈值进行判定;所述误差阈值为100毫秒,若误差大于所述误差阈值,则扣除30信任分。例如JS端设置的时间间隔为500毫秒,实际产生的日志时间间隔为300毫秒,则扣除30信任分;
检测移动事件中的坐标数据,所述移动事件包括鼠标移动及触屏滑动,所述坐标数据具体指移动事件所产生的X轴页面点位及Y轴页面点位,若检测出坐标数据超出屏幕分辨率时,扣除30信任分。例如当屏幕分辨率为1920×1200时,检测出移动事件所产生的X轴页面点位为2000,则扣除30信任分;
检测点击事件场景中是否存在点击动作,所述点击事件场景具体指一定会产生点击动作的业务场景,所述点击动作包括鼠标点击及触屏点击,若未检测到点击动作,则扣除20信任分;
检测点击事件场景中是否存在同像素点,所述同像素点具体指多次交互事件所包含的点击动作,其像素点的屏幕坐标完全一致,则认定为疑似录制行为,扣除30信任分。例如A用户进行了3次鼠标点击,坐标依次为(100,100)、(100,200)、(200,300),B用户也进行了3次鼠标点击,坐标同样依次为(100,100)、(100,200)、(200,300),则扣除30信任分;
检测是否存在触屏点击事件伪造,若在移动端业务场景中上报的ActiveLogs里检测到包含鼠标点击动作,则认定为触屏点击事件伪造,扣除30信任分;
检测连续输入事件的时间间隔,将所述时间间隔对比预设的间隔阈值进行判定,所述间隔阈值为100毫秒,若所述时间间隔低于间隔阈值,则扣除30信任分。例如连续输入事件的时间间隔为50毫秒,则扣除30信任分;
检测输入事件场景中是否存在输入动作,所述输入事件场景具体指一定会产生输入动作的业务场景,所述输入动作包括键盘输入和触屏输入,若未检测到输入动作,则扣除20信任分;
检测滑动事件场景中是否存在Y轴方向的滑动动作,所述滑动事件场景具体指一定会产生Y轴方向的滑动动作的业务场景,所述Y轴方向的滑动动作包括PC端页面上下滑动或触屏端上下滑动,若未检测到Y轴滑动,则扣除20信任分;
检测多次交互事件所产生的操作类型的集合是否完全一致,若完全一致,则扣除30信任分。例如A用户首先在坐标(100,100)处进行了一次鼠标点击,然后将鼠标移动至坐标(100,200),然后进行了一次键盘输入,然后将鼠标移动至坐标(200,300),然后进行了一次鼠标点击,而B用户同样首先在坐标(100,100)处进行了一次鼠标点击,然后将鼠标移动至坐标(100,200),然后进行了一次键盘输入,然后将鼠标移动至坐标(200,300),然后进行了一次鼠标点击,则扣除30信任分。
所述信用分扣减机制通过人机交互试验进行了初步设定,并通过大量实践对测算维度的项目和相应的信任分参数进行了修正,可以有效的进行JS交互行为的人机验证检测。经过验证,本方法对于JS交互行为的人机验证检测的判定准确率高达100%。
本发明主要用于提供一种基于JS事件行为分析上报的测评方法,能与各具体业务场景结合,后台的分析系统基于上报行为,在完成测评模型后会给出具体分值以及特征标签,能够基于行为数据分析实现自动测定评分,分析出模拟登陆的响应请求以及拟态交互的伪造请求,为业务系统提供评定标准,结合外部环境技术不断优化分析模型,不断提高人机检测的准确率,同时可以在后台审查环节完整录放等功能,最终达到能够区分机器人与真实用户的目的。
以上实施例不以任何方式限定本发明,凡是对以上实施例以等效变换方式做出的其它改进与应用,都属于本发明的保护范围。

Claims (8)

1.一种基于JS交互行为的人机验证检测方法,其特征在于,包括如下步骤:
步骤1,用户在客户端发送请求,服务端在业务响应发送之前,向评分系统发送调用请求,所述评分系统用以获取加密混淆过的mixToken,具体为:在评分系统中根据当前业务场景的sessionID生成realToken和disturbToken,对realToken和disturbToken做混淆排列生成mixToken,在业务响应头部加入mixToken,服务端在向客户端返回业务响应前,基于业务的sessionID存储realToken;
步骤2,在客户端中封装评分系统的JS-SDK,所述JS-SDK对mixToken解密校验以获得realToken,将所述realToken混淆排列生成JsmixToken;
步骤3,在JS-SDK中设置监听收集模块,所述监听收集模块监听并收集用户产生的交互事件,得到参数信息,所述交互事件包括:web端的键盘动作、鼠标动作和移动端的触屏动作,所述参数信息以数组追加的方式临时存储在JS-SDK的指定变量中,所述参数信息分类做格式化并进行序列化加密,在预设的关键时间节点向服务端上报,所述关键时间节点是指用户点击相关的提交按钮时;
步骤4,在服务端设置评分组件,所述评分组件用于接收客户端上报的参数信息,对序列化加密的参数信息进行反序列化解析;所述评分组件中预设行为分析模块,将反序列化解析的参数信息输入行为分析模块用于交互事件分析,得到交互事件分析结果。
2.如权利要求1所述的一种基于JS交互行为的人机验证检测方法,其特征在于,所述步骤1中,所述混淆排列的混淆规则具体为:随机生成16位的realToken和16位的disturbToken,将realToken和disturbToken按奇偶位穿插组合,组合成32位的字符串mixToken,所述奇偶位穿插组合具体为:所述realToken占奇数位从尾部逆向插入,所述disturbToken占偶数位从头部顺向插入。
3.如权利要求2所述的一种基于JS交互行为的人机验证检测方法,其特征在于,所述步骤2中,所述JsmixToken的生成方法遵循所述步骤1中的混淆规则,对JS代码进行控制流平坦化,使用nodeJS平台及工具uglyfy对JS代码进行压缩丑化,用于生成不止一套JS-SDK,服务端响应请求页面时随机切换JS-SDK;禁用浏览器控制台DEBUG。
4.如权利要求3所述的一种基于JS交互行为的人机验证检测方法,其特征在于:所述步骤3中,所述参数信息为Base64编码,使用Json对所述参数信息序列化加密,所述参数信息分类成参数项,所述参数项包括:JsMixToken、客户端IP、ActiveLogs、BusinessInfo;所述客户端IP由客户端通过JSOP方式跨域获取,用于后续与服务端识别IP进行核验;所述ActiveLogs由JS-SDK中的监听收集模块监听收集,包括交互事件产生的log记录,所述log记录包括:操作类型、屏幕坐标、时间信息,所述操作类型包括:键盘输入、滑动动作、鼠标移动、鼠标点击、触屏输入、触屏点击、触屏滑动,所述屏幕坐标包括:X轴页面点位、Y轴页面点位,所述时间信息包括时间戳,所述时间戳精确到毫秒级;所述BusinessInfo包含业务的sessionID。
5.如权利要求4所述的一种基于JS交互行为的人机验证检测方法,其特征在于,所述步骤4中,所述评分组件中包括用于对JsMixToken进行校验防伪、对IP业务限流和用户身份识别的过滤器;所述IP业务限流具体为:由服务端根据HTTP请求信息获取X_FORWARD_FOR,对多层反向代理的请求做内网过滤,得到IP,用于与之前客户端提报上的IP进行对比,若不相同,则判定为异常请求并进行拦截;所述用户身份识别具体为:指定登陆用户状态为Session形式或Token形式。
6.如权利要求5所述的一种基于JS交互行为的人机验证检测方法,其特征在于,所述步骤4中,所述评分组件中包括行为分析模块,所述行为分析模块用于测算分析ActiveLogs中的log记录,所述行为分析模块中,正常交互事件与非正常交互事件所产生的参数信息之间的差异设置为测算维度,所述测算分析中设有总信任分、第一信任分、第二信任分,测算分析的结果为最终信任分,当最终信任分低于第一信任分时,则判定为疑似机器行为,当最终信任分低于第二信任分时,则判定为确认机器行为。
7.如权利要求6所述的一种基于JS交互行为的人机验证检测方法,其特征在于,所述步骤4中,所述测算分析的测算维度具体包括:
对IP进行计数,结合业务场景提前配置IP请求的上限次数,对预设时间区间内超出IP请求的上限次数的请求做限流屏蔽;
预设同IP互斥锁,所述同IP互斥锁用于:同一IP在同一时间发起多次请求,只允许第一次请求上报到服务端,对其他请求进行屏蔽;
分析HTTP请求信息中是否包含关键词,若PC端场景的HTTP请求信息包含关键词,则扣除信任分,若移动端场景的HTTP请求信息不包含关键词,则扣除信任分;
对ActiveLogs的第一项设置启动时间检查的阈值,若所述启动时间低于所述阈值,则扣除信任分;
对日志时间做间距检测,将间距检测的结果与JS端所设置的时间间隔进行比对获得误差,将所述误差对比预设的误差阈值进行判定;若误差大于所述误差阈值,则扣除信任分;
检测移动事件中的坐标数据,所述移动事件包括鼠标移动及触屏滑动,所述坐标数据具体指移动事件所产生的X轴页面点位及Y轴页面点位,当检测出坐标数据超出屏幕分辨率时,扣除信任分;
检测点击事件场景中是否存在点击动作,所述点击事件场景具体指一定会产生点击动作的业务场景,所述点击动作包括鼠标点击及触屏点击,若未检测到点击动作,则扣除信任分;
检测点击事件场景中是否存在同像素点,所述同像素点具体指多次交互事件所包含的点击动作,其像素点的屏幕坐标完全一致,则认定为疑似录制行为,扣除信任分;
检测是否存在触屏点击事件伪造,若在移动端业务场景中上报的ActiveLogs里检测到包含鼠标点击动作,则认定为触屏点击事件伪造,扣除信任分
检测连续输入事件的时间间隔,将所述时间间隔对比预设的间隔阈值进行判定,如所述时间间隔低于间隔阈值,则扣除信任分;
检测输入事件场景中是否存在输入动作,所述输入事件场景具体指一定会产生输入动作的业务场景,所述输入动作包括键盘输入和触屏输入,若未检测到输入动作,则扣除信任分;
检测滑动事件场景中是否存在Y轴方向的滑动动作,所述滑动事件场景具体指一定会产生Y轴方向的滑动动作的业务场景,所述Y轴方向的滑动动作包括PC端页面上下滑动或触屏端上下滑动,若未检测到Y轴滑动,则扣除信任分;
检测多次交互事件所产生的操作类型的集合是否完全一致,若完全一致,则扣除信任分。
8.如权利要求7所述的一种基于JS交互行为的人机验证检测方法,其特征在于,所述步骤4中,所述测算分析的总信任分设为100分,第一信任分设为60分,第二信任分设为40分,测算维度还包括:
所述分析HTTP请求信息中是否包含关键词中,所述关键词包含AppleWebKit、Mobile、Mac、Android、iPhone、iPad,若PC端场景的HTTP请求信息包含关键词,则扣除20信任分,若移动端场景的HTTP请求信息不包含关键词,则扣除20信任分;
所述对ActiveLogs的第一项设置启动时间检查的阈值中,所述启动时间检查的阈值为300毫秒,若所述启动时间低于所述阈值,则扣除10信任分;
所述对日志时间做间距检测中,所述误差阈值为100毫秒,若误差大于所述误差阈值,则扣除30信任分;
所述检测移动事件中的坐标数据格式中,若检测出坐标数据超出屏幕分辨率时,扣除30信任分;
所述检测点击事件场景中是否存在点击动作中,若未检测到点击动作,则扣除20信任分;
所述检测点击事件场景中是否存在同像素点中,若认定为疑似录制行为,扣除30信任分;
所述检测是否存在触屏点击事件伪造中,若认定为触屏点击事件伪造,扣除30信任分;
所述检测连续输入事件的时间间隔中,所述间隔阈值为100毫秒,若所述时间间隔低于间隔阈值,则扣除30信任分;
所述检测输入事件场景中是否存在输入动作中,若未检测到输入动作,则扣除20信任分;
所述检测滑动事件场景中是否存在Y轴方向的滑动动作中,若未检测到Y轴滑动,则扣除20信任分;
所述检测多次交互事件所产生的操作类型的集合是否完全一致中,若完全一致,则扣除30信任分。
CN202110709617.0A 2021-06-25 2021-06-25 一种基于js交互行为的人机验证检测方法 Active CN113434838B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110709617.0A CN113434838B (zh) 2021-06-25 2021-06-25 一种基于js交互行为的人机验证检测方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110709617.0A CN113434838B (zh) 2021-06-25 2021-06-25 一种基于js交互行为的人机验证检测方法

Publications (2)

Publication Number Publication Date
CN113434838A true CN113434838A (zh) 2021-09-24
CN113434838B CN113434838B (zh) 2024-05-24

Family

ID=77754581

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110709617.0A Active CN113434838B (zh) 2021-06-25 2021-06-25 一种基于js交互行为的人机验证检测方法

Country Status (1)

Country Link
CN (1) CN113434838B (zh)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109902459A (zh) * 2017-12-11 2019-06-18 北京京东尚科信息技术有限公司 Web页面的人机识别验证方法、系统、设备和存储介质
CN111209601A (zh) * 2020-01-06 2020-05-29 南京安璟信息科技有限公司 一种用于反欺诈的人机识别系统
CN112717417A (zh) * 2020-12-31 2021-04-30 新浪网技术(中国)有限公司 一种人机识别方法及装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109902459A (zh) * 2017-12-11 2019-06-18 北京京东尚科信息技术有限公司 Web页面的人机识别验证方法、系统、设备和存储介质
CN111209601A (zh) * 2020-01-06 2020-05-29 南京安璟信息科技有限公司 一种用于反欺诈的人机识别系统
CN112717417A (zh) * 2020-12-31 2021-04-30 新浪网技术(中国)有限公司 一种人机识别方法及装置

Also Published As

Publication number Publication date
CN113434838B (zh) 2024-05-24

Similar Documents

Publication Publication Date Title
Barse et al. Synthesizing test data for fraud detection systems
CN107729729B (zh) 一种基于随机森林的滑动验证码的自动通过测试方法
US20100146622A1 (en) Security system and method for detecting intrusion in a computerized system
CN109889538A (zh) 用户异常行为检测方法及系统
JP2017126283A (ja) 検知プログラム、検知方法および検知装置
CN107861852A (zh) 网页错误处理方法、系统及可读存储介质
CN111198797B (zh) 操作监控方法及装置、操作分析方法及装置
CN111209601A (zh) 一种用于反欺诈的人机识别系统
CN109547426A (zh) 业务响应方法及服务器
CN107409134A (zh) 法证分析
WO2013147226A1 (ja) 利用者体感品質推定装置、端末ボトルネック判定装置、類似操作抽出装置、及び方法、並びにプログラム
US8892896B2 (en) Capability and behavior signatures
CN107168844B (zh) 一种性能监控的方法及装置
CN110798440A (zh) 异常用户检测方法、装置、系统及计算机存储介质
CN104980421A (zh) 一种批量请求处理方法及系统
CN110808995B (zh) 安全防护方法和装置
CN113934621A (zh) 模糊测试方法、系统、电子设备及介质
CN112671605A (zh) 一种测试方法、装置及电子设备
CN110519269B (zh) 图文点选数据的验证方法、装置、系统及移动终端
CN108769749A (zh) 一种确定盗刷数据的方法、客户端及服务器
Chinchani et al. Racoon: rapidly generating user command data for anomaly detection from customizable template
CN109299592B (zh) 人机行为特征边界构建方法、系统、服务器及存储介质
CN114844689A (zh) 一种基于有限状态机的网站逻辑漏洞检测方法及系统
CN113434838B (zh) 一种基于js交互行为的人机验证检测方法
CN107276852B (zh) 一种数据安全检测方法及终端

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant