一种网站结合图形验证码的防御方法及其系统技术方案

技术编号:26763163 阅读:19 留言:0更新日期:2020-12-18 23:21
本发明专利技术提供了一种网站结合图形验证码的防御方法,该方法为:步骤S1、在网站的统一入口处进行浏览器指纹的收集,收集用户的访问浏览器指纹和IP;将浏览器指纹和IP的对应关系进行存储;步骤S2、用户的访问量触发指定阈值或者浏览器指纹和IP的对应关系发生变更后,生成图形验证码;步骤S3、将图形验证码发送给用户,强制用户输入正确的验证码,并且存入用户输入正确验证码的时间;步骤S4、用户输入正确验证码后在设定时间内不触发验证码机制,等超过设定时间后,重新触发验证码机制;减缓访问量太经常的用户的访问频率,来降低网站整体的访问峰值,提高用户的体验度。

【技术实现步骤摘要】
一种网站结合图形验证码的防御方法及其系统
本专利技术涉及计算机通讯
,特别是一种网站结合图形验证码的防御方法及其系统。
技术介绍
一个网站正式上线后,随着业务的发展,用户的增多,网站的访问压力将会越来越大,现有技术一般会冗余部署多台服务器,增加负载均衡配置,来提高网站的吞吐量。但在机器有限的情况下,如何对突发增长的流量进行抗压,常用的做法有限流器和服务降级等,但这些措施都是有损的,对用户提供的服务都有打折扣。
技术实现思路
为克服上述问题,本专利技术的目的是提供一种网站结合图形验证码的防御方法,减缓用户在不同页面的切换速度,以此来降低短期流量,又能在不降低服务功能的情况下,继续对外提供完整的服务。本专利技术采用以下方案实现:一种网站结合图形验证码的防御方法,所述方法包括如下步骤:步骤S1、在网站的统一入口处进行浏览器指纹的收集,收集用户的访问浏览器指纹和IP;将浏览器指纹和IP的对应关系进行存储;步骤S2、用户的访问量触发指定阈值或者浏览器指纹和IP的对应关系发生变更后,生成图形验证码;步骤S3、将图形验证码发送给用户,强制用户输入正确的验证码,并且存入用户输入正确验证码的时间;步骤S4、用户输入正确验证码后在设定时间内不触发验证码机制,等超过设定时间后,重新触发验证码机制。进一步的,所述步骤S1进一步具体为:在网站的统一入口处进行浏览器指纹的收集,由于不同的系统显卡绘制canvas时渲染参数、抗锯齿不同,则绘制成图片数据的CRC校验也不一样,即能根据canvas能获取浏览器指纹信息,绘制canvas,获取图片base64的dataUrl,对dataUrl这个字符串进行md5摘要计算,得到浏览器指纹信息;获取当前访问IP,存储浏览器指纹和IP的关联关系到redis内存数据库中;制作指纹计数器功能,存到内存数据redis中,按天累计,隔天清零。进一步的,所述步骤S2进一步具体为:在统一入口处检测浏览器指纹的访问量是否触发指定阈值,否,不进行操作,是,则触发验证码机制;或者在统一入口处检测当前浏览器指纹的IP与内存数据库中的指纹和IP关系是否一致,如果发生变化,重新覆盖浏览器指纹的最新访问IP至redis内存数据库中,并且触发验证码机制。进一步的,所述步骤S2和步骤S3之间还包括一步骤S20、进行session的校验操作,即具体为:步骤21、设置一session["pass"],该session["pass"]用于存储用户输入图形验证码通过的时间;校验session["pass"]是否存在内容,不存在则进入步骤22;存在,则校验距离session["pass"]内的时间是否大于预设时间,大于则进入步骤22,小于,则不进行操作;步骤22:存入限制标识到session,即session["limit"]=1;步骤23:用户访问网站页面,检测到session["limit"]存在并且等于1,是,则进入步骤24,否,则不进行操作;步骤24:随机生成验证码值,存入session,即用session["code"]进行存储;步骤25:调用开源的图形验证码生成库base64Captcha,生成验证码值的图形验证码,发送给用户。进一步的,所述步骤S3进一步具体为:服务端验证session["code"]是否存在,不存在,则不进行操作;存在,则判断是否与用户输入的值相等,相等则表示通过,清理session["code"]和session["limit"],将图形验证码发送给用户,强制用户输入正确的验证码,并且存入用户输入正确验证码的时间,即session["pass"]=用户输入图形验证码通过的时间。本专利技术还提供了一种网站结合图形验证码的防御系统,所述系统包括收集模块、触发验证码机制模块、验证码校验模块、以及触发机制判定模块;所述收集模块,用于在网站的统一入口处进行浏览器指纹的收集,收集用户的访问浏览器指纹和IP;将浏览器指纹和IP的对应关系进行存储;所述触发验证码机制模块,通过用户的访问量触发指定阈值或者浏览器指纹和IP的对应关系发生变更后,生成图形验证码;所述验证码校验模块,将图形验证码发送给用户,强制用户输入正确的验证码,并且存入用户输入正确验证码的时间;所述触发机制判定模块,通过用户输入正确验证码后在设定时间内不触发验证码机制,等超过设定时间后,重新触发验证码机制。进一步的,所述收集模块的实现方式进一步具体为:在网站的统一入口处进行浏览器指纹的收集,由于不同的系统显卡绘制canvas时渲染参数、抗锯齿不同,则绘制成图片数据的CRC校验也不一样,即能根据canvas能获取浏览器指纹信息,绘制canvas,获取图片base64的dataUrl,对dataUrl这个字符串进行md5摘要计算,得到浏览器指纹信息;获取当前访问IP,存储浏览器指纹和IP的关联关系到redis内存数据库中;制作指纹计数器功能,存到内存数据redis中,按天累计,隔天清零。进一步的,所述触发验证码机制模块的实现方式进一步具体为:在统一入口处检测浏览器指纹的访问量是否触发指定阈值,否,不进行操作,是,则触发验证码机制;或者在统一入口处检测当前浏览器指纹的IP与内存数据库中的指纹和IP关系是否一致,如果发生变化,重新覆盖浏览器指纹的最新访问IP至redis内存数据库中,并且触发验证码机制。进一步的,所述触发验证码机制模块和验证码校验模块之间还包括一校验模块,该校验模块用于进行session的校验操作,即具体为:设置一session["pass"],该session["pass"]用于存储用户输入图形验证码通过的时间;校验session["pass"]是否存在内容,不存在则存入限制标识到session,即session["limit"]=1;存在,则校验距离session["pass"]内的时间是否大于预设时间,小于,则不进行操作;大于则存入限制标识到session,即session["limit"]=1;用户访问网站页面,检测到session["limit"]存在并且等于1,否,则不进行操作;是,则随机生成验证码值,存入session,即用session["code"]进行存储;调用开源的图形验证码生成库base64Captcha,生成验证码值的图形验证码,发送给用户。进一步的,所述验证码校验模块进一步具体为:服务端验证session["code"]是否存在,不存在,则不进行操作;存在,则判断是否与用户输入的值相等,相等则表示通过,清理session["code"]和session["limit"],将图形验证码发送给用户,强制用户输入正确的验证码,并且存入用户输入正确验证码的时间,即session["pass"]=用户输入图形验证码通过的时间。本专利技术的有益效果在于:对用户的访问行为增加难度,在触发阈值的情况下,强制用户输入图形验证码,减缓用户在不同页面的切换速度,以此来降低短期流量,又本文档来自技高网...

【技术保护点】
1.一种网站结合图形验证码的防御方法,其特征在于:所述方法包括如下步骤:/n步骤S1、在网站的统一入口处进行浏览器指纹的收集,收集用户的访问浏览器指纹和IP;将浏览器指纹和IP的对应关系进行存储;/n步骤S2、用户的访问量触发指定阈值或者浏览器指纹和IP的对应关系发生变更后,生成图形验证码;/n步骤S3、将图形验证码发送给用户,强制用户输入正确的验证码,并且存入用户输入正确验证码的时间;/n步骤S4、用户输入正确验证码后在设定时间内不触发验证码机制,等超过设定时间后,重新触发验证码机制。/n

【技术特征摘要】
1.一种网站结合图形验证码的防御方法,其特征在于:所述方法包括如下步骤:
步骤S1、在网站的统一入口处进行浏览器指纹的收集,收集用户的访问浏览器指纹和IP;将浏览器指纹和IP的对应关系进行存储;
步骤S2、用户的访问量触发指定阈值或者浏览器指纹和IP的对应关系发生变更后,生成图形验证码;
步骤S3、将图形验证码发送给用户,强制用户输入正确的验证码,并且存入用户输入正确验证码的时间;
步骤S4、用户输入正确验证码后在设定时间内不触发验证码机制,等超过设定时间后,重新触发验证码机制。


2.根据权利要求1所述的一种网站结合图形验证码的防御方法,其特征在于:所述步骤S1进一步具体为:在网站的统一入口处进行浏览器指纹的收集,由于不同的系统显卡绘制canvas时渲染参数、抗锯齿不同,则绘制成图片数据的CRC校验也不一样,即能根据canvas能获取浏览器指纹信息,绘制canvas,获取图片base64的dataUrl,对dataUrl这个字符串进行md5摘要计算,得到浏览器指纹信息;获取当前访问IP,存储浏览器指纹和IP的关联关系到redis内存数据库中;制作指纹计数器功能,存到内存数据redis中,按天累计,隔天清零。


3.根据权利要求1所述的一种网站结合图形验证码的防御方法,其特征在于:所述步骤S2进一步具体为:在统一入口处检测浏览器指纹的访问量是否触发指定阈值,否,不进行操作,是,则触发验证码机制;或者在统一入口处检测当前浏览器指纹的IP与内存数据库中的指纹和IP关系是否一致,如果发生变化,重新覆盖浏览器指纹的最新访问IP至redis内存数据库中,并且触发验证码机制。


4.根据权利要求1所述的一种网站结合图形验证码的防御方法,其特征在于:所述步骤S2和步骤S3之间还包括一步骤S20、进行session的校验操作,即具体为:步骤21、设置一session["pass"],该session["pass"]用于存储用户输入图形验证码通过的时间;校验session["pass"]是否存在内容,不存在则进入步骤22;存在,则校验距离session["pass"]内的时间是否大于预设时间,大于则进入步骤22,小于,则不进行操作;
步骤22:存入限制标识到session,即session["limit"]=1;
步骤23:用户访问网站页面,检测到session["limit"]存在并且等于1,是,则进入步骤24,否,则不进行操作;
步骤24:随机生成验证码值,存入session,即用session["code"]进行存储;
步骤25:调用开源的图形验证码生成库base64Captcha,生成验证码值的图形验证码,发送给用户。


5.根据权利要求4所述的一种网站结合图形验证码的防御方法,其特征在于:所述步骤S3进一步具体为:服务端验证session["code"]是否存在,不存在,则不进行操作;存在,则判断是否与用户输入的值相等,相等则表示通过,清理session["code"]和session["limit"],将图形验证码发送给用户,强制用户输入正确的验证码,并且存入用户输入正确验证码的时间,即session["pass"]=用户输入图形验证码通过的时间。


6.一种网站结合图形验证码的防御系统,其特征在于:所述系...

【专利技术属性】
技术研发人员:刘德建叶伟郑彬岳万恕陈宏展
申请(专利权)人:福建天晴在线互动科技有限公司
类型:发明
国别省市:福建;35

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

1