验证码的验证方法和系统与流程

文档序号:18406634发布日期:2019-08-10 00:27阅读:446来源:国知局
验证码的验证方法和系统与流程

本发明涉及计算机应用技术,特别是涉及一种验证码的验证方法和系统。



背景技术:

随着社会互联网的加深,基于互联网的应用系统日益增多,这些系统正面临越来越多的在线攻击。验证码作为一种辅助安全手段在web安全中有着特殊的地位。验证码是一种区分用户是计算机还是人的公共全自动程序。可以防止:恶意破解密码、刷票、论坛灌水,以防止某个黑客对某一个特定注册用户用特定程序暴力破解方式进行不断的登陆尝试。目前,验证码被很多网站所广泛采用。

现有实现验证码的主要技术有:纯文本验证码使用纯文本和图形验证码。例如:

·1+1=?

·本论坛的域名是?

·今天是星期几?

·复杂点的数学运算

现有的纯文本验证码技术的缺点是文本数量有限,破解很简单,多刷几次就容易破解了。对于图形验证码,由于通常由点、线、面、体等几何元素和灰度、色彩、线型、线宽等非几何属性组成,而随着现在的计算机对基本二维图形元素(如象素、线、面等)的处理能力以及色差分析处理能力的逐渐提高,也较容易被黑客软件所破解。这样,验证码就容易被软件所自动识别,从而会导致互联网应用系统被黑客所攻击无法正常运行。

由此可见,现有的验证码技术存在容易被破解的问题。



技术实现要素:

有鉴于此,本发明的主要目的在于提供一种验证码的验证方法和系统,可以有效避免验证码被非法程序自动识别。

为了达到上述目的,本发明提出的技术方案为:

一种验证码的验证方法,包括:

a、客户端检测到当前页面上的解锁滑块滑动,当所述解锁滑块滑动到预设的检测位置时,将所述解锁滑块设置于不可移动状态,向网页服务器发送认证请求;所述认证请求中携带当前时间点信息、当前的滑动进度信息和客户端标识;

b、若客户端接收到验证码,显示所述验证码;所述验证码为所述网页服务器判断所述认证请求合法且所述认证请求指示的滑动进度为100%时生成并发送给所述客户端;

若客户端接收到继续滑动指令,所述客户端根据所述继续滑动指令,将所述解锁滑块设置于可移动状态,转入步骤a;所述继续滑动指令为所述网页服务器判断所述认证请求合法且所述认证请求指示的滑动进度不是100%时发送给所述客户端。

一种验证码的验证方法,包括:

a、网页服务器接收客户端发送的认证请求,所述认证请求为客户端检测到当前页面上的解锁滑块滑动,当所述解锁滑块滑动到预设的检测位置时,将所述解锁滑块设置于不可移动状态之后发送,所述认证请求中携带当前时间点信息、当前的滑动进度信息和客户端标识;

b、所述网页服务器判断所述认证请求是否合法,如果合法,则判断所述认证请求指示的滑动进度是否为100%,如果是,则生成验证码并发送给所述客户端,否则,向所述客户端发送继续滑动指令,所述继续滑动指令用于指示将所述解锁滑块设置于可移动状态。

一种验证码的验证系统,包括:

客户端,用于当检测到当前页面上的解锁滑块滑动,当所述解锁滑块滑动到预设的检测位置时,将所述解锁滑块设置于不可移动状态,向网页服务器发送认证请求;所述认证请求中携带当前时间点信息、当前的滑动进度信息和客户端标识;对接收到的所述验证码进行显示;根据网页服务器的继续滑动指令,将所述解锁滑块设置于可移动状态;

网页服务器,用于判断接收到的所述认证请求是否合法,如果合法,则判断所述认证请求指示的滑动进度是否为100%,如果是,则生成验证码并发送给所述客户端,否则,向所述客户端发送继续滑动指令。

综上所述,本发明提出的一种验证码的验证方法和系统,引入滑动解锁技术,先根据用户的滑动解锁动作,识别出滑动是人工操作的还是软件触发的,进而据此对验证码的发送和显示进行控制,确保只有在人工操作时才可以将验证码发送给客户端并显示,如此,可以有效避免验证码被非法程序自动识别,提高系统的安全性。

附图说明

图1为本发明实施例的方法流程示意图;

图2为本发明实施例的系统结构示意图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚,下面将结合附图及具体实施例对本发明作进一步地详细描述。

本发明的核心思想是:引入滑动解锁技术,网页服务器通过对用户的滑动解锁动作进行监控,来控制验证码在网页上的显示,这样,在监控过程中,基于用户的滑动行为特征可以识别出滑动操作是人工执行的还是软件触发的,从而可以确保只有在人工操作时才可以将验证码发送给客户端并显示,如此,可以有效避免验证码被软件自动识别。

图1为本发明实施例的方法流程示意图,如图1所示,该实施例主要包括:

步骤101、当客户端检测到当前页面上的解锁滑块滑动到预设的检测位置时,将所述解锁滑块设置于不可移动状态,并向网页服务器发送认证请求。

本步骤中,客户端会实时监测用户对页面中滑动滚动条上解锁滑块的滑动行为,当滑块滑到预设的检测位置时,就需要将滑块置于不可移动状态,同时向网页服务器发送认证请求,此后,只有通过服务器的认证后,才能允许解锁滑块滑动到下一检测位置。

这里,为了使服务器对客户端发送的认证请求进行合法性判断,所述认证请求中将携带当前时间点信息、当前的滑动进度信息和客户端标识,其中,时间点信息用于服务器从认证请求发送的时间间隔的角度判断解锁滑块的滑动是否是人工操作的,以避免验证码被软件自动识别。

在实际应用中,所述检测位置为本领域技术人员预先设置的,检测位置数量设置的越多,对软件行为的识别准确性也越高,相应的,用户操作和检测的复杂性也会提高。检测位置将至少包括解锁滑块的滑动终点,其具体数量和所在进度点,可由本领域技术人员根据实际需要综合考虑实现的复杂性和准确性要求进行设置,在此不再赘述。

步骤102、所述网页服务器判断接收到的所述认证请求是否合法,当判定合法时,判断所述认证请求指示的滑动进度是否为100%,如果是,则执行步骤104,否则,执行步骤103。

本步骤中,网页服务器将根据接收到的认证请求携带的信息,对认证请求的合法性进行判断,以便识别出该认证请求是由用户操作触发的,还是非法软件自动发送的,以确保只有在用户滑动解锁滑块的情况下才将验证码通知给客户端,从而可以确保验证码不会被非法获取。

这里,在判断出认证请求合法后,需要判断当前的滑动是否是到了解锁滑块的终点,即滑动进度是否是到了100%,如果是,则在步骤104中需要将验证码通知给客户端显示,否则,需要触发客户端重新将解锁滑块置于可移动状态,以便用户继续对解锁滑块执行滑动操作。

在实际应用中,当网页服务器判断出接收到的所述认证请求非法时,可以不执行任何操作,也可以通知客户端所述认证请求非法,触发客户端将解锁滑块的滑动进度重置为起始点。

步骤103、所述网页服务器向所述客户端发送继续滑动指令,所述客户端根据接收到的所述继续滑动指令,将所述解锁滑块设置于可移动状态,转入步骤101。

步骤104、所述网页服务器生成验证码并发送给所述客户端,所述客户端显示接收到的所述验证码,并将用户确认的验证码发送给所述网页服务器;所述网页服务器对接收到的所述验证码进行校验。

本步骤中,网页服务器在检测到所有检测位置的认证请求都合法的情况下,将向所述客户端发送验证码,如此,可有效避免非法软件对验证码的获取。

较佳地,为了进一步避免验证码被非法软件所截获,网页服务器每次在检测到认证请求合法后,可以生成认证标识信息并对其加密后发送给客户端,客户端在下一次发送认证请求时携带已为其生成的所有认证标识信息,这样,网页服务器收到认证请求后,可以基于认证请求携带的认证标识信息进行合法性判断。较佳地,可以采用下述方法实现上述目的:

在步骤104中,所述继续滑动指令携带经过加密的认证标识信息,该认证标识信息为网页服务器为当前检测位置生成的信息。

这里,通过对认证标识进行加密,可以有效避免软件对认证标识的非法截获。

较佳地,为了便于网页服务器进行合法性认证,所述认证标识信息可以包含当前检测位置对应的所述时间点信息、所述客户端标识和认证标识编号。

这里,通过在认证标识中携带认证标识编号,网页服务器可以对认证标识进行准确识别。

在步骤101中,当所述解锁滑块所在的检测位置非首个检测位置时,所述认证请求携带当前检测位置之前的所有检测位置的所述认证标识信息。

相应地,当认证请求中携带上述认证标识时,在步骤102中当网页服务器收到认证请求后,可以采用下述方法判断接收到的所述认证请求是否合法:

如果所述认证请求指示的滑动进度为首个或第二个检测位置,则判定所述认证请求合法;否则,根据所述认证请求携带的所有认证标识信息,计算当前检测位置及其前面所有检测位置中两两相邻检测位置之间的时间差值,如果所有时间差值均相等,则判定所述认证请求非法,否则,判定所述认证请求合法。

这里,所述当前检测位置,即当前接收到的认证请求所指示的滑动进度对应的检测位置。

在上述判断方法中,由于每个认证标识信息都包含对应检测位置的滑动到达时间点,因此,基于所有认证标识信息,可以得到当前检测位置及该检测位置之前所有检测位置中两两相邻检测位置之间的滑动间隔时间(即两时间点之间的时间差值),由于人工操作是很难出现这些间隔时间都相等的情况,而程序操作则会存在该特点,因此,基于该特点,可以对人工操作触发的认证请求和程序自动发送的认证请求进行有效识别,如果当前检测位置及其之前所有检测位置中两两相邻检测位置之间的滑动间隔时间都相同,则可确定为非法,否则,可确定为合法。

另外,上述判断方法中,需要依据除终点外的所有检测位置对应的认证标识信息,如此,可以确保解锁滑块的滑动是一个滑动过程,避免出现由于程序控制,没依次经过各检测位置而直接到达滑动终点这种情况,从而可以有效避免非法程序操作获得验证码的情况发生。

较佳地,在实际应用中,所述验证码可以采用滑块验证码的形式实现,以确保验证码必须由人工输入才能被验证。

进一步地,基于滑块验证码的实现方式,为了提高对验证码的安全校验和防护,步骤104还可以进一步包括下述步骤:

首先,所述客户端在显示所述验证码后,显示滑块排序要求信息。

这里,滑块排序要求可以由本领域技术人员根据滑块验证码中各滑块所实际显示的具体内容,设置相匹配的要求。例如,当各滑块所显示的数字时,该滑块排序要求可以是从大到小或从小到大的顺序,当显示为英文字母时,可以是英文字母的顺序,当显示为汉字时,可以是一定的语言逻辑顺序如组成成语的顺序等,在实际应用中不限于上述实例。

然后,当所述客户端检测到用户在所述验证码处于滑动有效状态时对其中的一个滑块进行拖动时,将所述验证码设置于滑动无效状态,并向所述网页服务器发送检测请求,所述检测请求中携带当前的时间点信息、所述客户端标识和当前验证码的检测请求编号;当所述检测请求不是当前验证码对应的首次检测请求时,所述检测请求携带最近一次接收到的所述检测成功标识信息。

所述网页服务器判断接收到的所述检测请求是否合法,如果合法,则判断所述客户端发送的所述检测请求的次数是否达到预设阈值,如果是,则重新生成验证码,并触发所述客户端显示新生成的验证码,否则,为所述检测请求生成检测成功标识信息并加密,向所述客户端发送检测成功消息,所述检测成功消息携带所述加密后的检测成功标识信息,所述客户端根据所述检测成功消息,将所述验证码设置于滑动有效状态。

在上述方法中,用户每滑动一次验证码滑块,客户端都需要向服务器发送检测请求,在服务器对检测请求验证合法后,才可允许用户继续对滑块进行拖动操作,这样,通过由服务器对用户对验证码滑块的拖动操作进行控制,可以确保只有在人工方式下,才可以对验证码滑块的顺序进行调整,从而可以进一步确保对验证码的安全校验和防护。

上述方法中,当用户拖动滑块的操作达到一定阈值后,需要重新生成验证码,以避免程序对验证码的非法破解。

另外,网页服务器判断出当前接收到的检测请求合法后,需要为该检测请求生成检测成功标识信息并加密,客户端在下一次发送检测请求时需要携带该检测成功标识,以便网页服务器对检测请求合法性进行判断,如此,可以进一步确保对验证码的安全校验和防护,有效提高系统安全性。

较佳地,网页服务器可以采用下述方法对接收到的检测请求的合法性进行判断:

如果所述检测请求指示本检测请求为当前验证码对应的首次检测请求,则判定所述检测请求合法;否则,根据所述检测请求携带的信息,判断所述用户当前的滑动行为是否符合非人工操作特征,如果符合,则判定所述检测请求非法,否则,判定所述检测请求合法。

较佳地,所述非人工操作特征包括:所述检测请求没有携带上一次发送给所述客户端的检测成功标识信息;在已接收到的关于当前验证码的所有检测请求中,所有相邻检测请求指示的所述时间点之间的时间差相等;以及,当前所述检测请求与上一相邻所述检测请求分别指示的所述时间点之间的时间差小于预设的间隔阈值。

上述三个非人工操作特征,只要符合一个特征,即会判定检测请求非法。

图2为与上述方法相对应的验证码的验证系统,如图2所示,该系统包括:

客户端,用于当检测到当前页面上的解锁滑块滑动到预设的检测位置时,将所述解锁滑块设置于不可移动状态,并向网页服务器发送认证请求,所述认证请求中携带当前时间点信息、当前的滑动进度信息和客户端标识;根据接收到的验证码,显示所述验证码,并将用户确认的验证码发送给所述网页服务器;根据接收到的继续滑动指令,将所述解锁滑块设置于可移动状态。

网页服务器,用于判断接收到的所述认证请求是否合法,如果合法,则判断所述认证请求指示的滑动进度是否为100%,如果是,则生成验证码并发送给所述客户端,否则,向所述客户端发送继续滑动指令;用于对接收到的所述验证码进行校验。

较佳地,所述继续滑动指令携带经过加密的认证标识信息,所述认证标识信息包含当前检测位置对应的所述时间点信息、所述客户端标识和认证标识编号;所述认证标识信息为网页服务器为当前检测位置生成的信息;

当所述解锁滑块所在的检测位置非首个检测位置时,所述认证请求携带当前检测位置之前的所有检测位置的所述认证标识信息;

所述网页服务器,用于如果所述认证请求指示的滑动进度为首个检测位置,则判定所述认证请求合法;否则,根据所述认证请求携带的所有认证标识信息,计算已滑过的各相邻检测位置对应的所述时间点之间的时间差值,如果所有时间差值均相等,则判定所述认证请求非法,否则,判定所述认证请求合法。

较佳地,所述验证码为滑块验证码;

所述客户端,进一步用于在显示所述验证码后,显示滑块排序要求信息;当检测到用户在所述验证码处于滑动有效状态时对其中的一个滑块进行拖动时,将所述验证码设置于滑动无效状态,并向所述网页服务器发送检测请求,所述检测请求中携带当前的时间点信息、所述客户端标识和当前验证码的检测请求编号;当所述检测请求不是当前验证码对应的首次检测请求时,所述检测请求携带最近一次接收到的所述检测成功标识信息;根据网页服务器发送的检测成功消息,将所述验证码设置于滑动有效状态;

所述网页服务器,进一步用于判断接收到的所述检测请求是否合法,如果合法,则判断所述客户端发送的所述检测请求的次数是否达到预设阈值,如果是,则重新生成验证码,并触发所述客户端显示新生成的验证码,否则,为所述检测请求生成检测成功标识信息并加密,向所述客户端发送检测成功消息,所述检测成功消息携带所述加密后的检测成功标识信息。

较佳地,所述网页服务器,用于如果所述检测请求指示本检测请求为当前验证码对应的首次检测请求,则判定所述检测请求合法;否则,根据所述检测请求携带的信息,判断所述用户当前的滑动行为是否符合非人工操作特征,如果符合,则判定所述检测请求非法,否则,判定所述检测请求合法。

较佳地,所述非人工操作特征包括:所述检测请求没有携带上一次发送给所述客户端的检测成功标识信息,在已接收到的关于当前验证码的所有检测请求中,所有相邻检测请求指示的所述时间点之间的时间差相等,以及,当前所述检测请求与上一相邻所述检测请求分别指示的所述时间点之间的时间差小于预设的间隔阈值。

综上所述,以上仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1