验证码攻防秘籍

验证码介绍

验证码(CAPTCHA)是一种区分用户是计算机还是人的公共全自动程序。可以防止:恶意破解密码、刷票、论坛灌水,有效防止某个黑客对某一个特定注册用户用特定程序暴力破解方式进行不断的登陆尝试,实际上用验证码是现在很多网站通行的方式,我们利用比较简易的方式实现了这个功能。这个问题可以由计算机生成并评判,但是必须只有人类才能解答。由于计算机无法解答CAPTCHA的问题,所以回答出问题的用户就可以被认为是人类。


验证码案例

https://blog.csdn.net/wnw1234/article/details/123342540?spm=1001.2014.3001.5501


验证码挑战

尝试使用开源的tess4j框架来对验证码图片进行OCR光学识别

1.先将生成验证码图片保存到本地磁盘

 2.在项目的pom文件添加tess4j依赖

3. 需要到tess4j的官方git仓库上下载各种语言的训练数据

下载地址:https://github.com/tesseract-ocr/tessdata

英文语言包:eng.traineddata

中文语言包:chi_sim.traineddata


测试案例


验证码安全升级

可以通过N条随机干扰线,添加噪点,改变图片形态都能让验证码图片变得更复杂,在不影响真人识别的前提下,有效降低破解程序的成功率.

但tess4j这样的程序对于不同语言的识别准确率,都是通过训练来提升的,这也意味不管的你的验证码变得多么复杂难看,只要有一定的规律,tess4j就可以用机器学习的方式,把它作为另一种新的语言来识别.从而提高识别成功率,实际上,验证码识别也是机器学习深度学习技术的一个非常热门的研究领域.这是个动态的攻防领域,所以验证码也需要有其他更多的技术来增加破解难度


手写表达式验证码

为了提高验证码的安全性,将原始的图片验证码改成表达式验证码就是一个很常用的手段,其实本质也就是将展现出来的图形与保存到session中的验证码文字进行区分.例如图形展示一个随机的计算式,而将计算式的结果保存到session中来进行验证


体验开源验证码 

介绍一些互联网上常用的开源验证码,dai大家对验证码的技术环境有个大体的了解.

1.jcaptcha体验  http://jcaptcha.sourceforge.net

2.Happy-Captcha体验 https://gitee.com/ramostear/Happy-Captcha

3.kcaptcha体验 https://gitee.com/baomidou/kaptcha-spring-boot-starter

4.滑块式验证码 https://gitee.com/LongbowEnterprise/SliderCaptcha

5.AJ-Captcha(实现滑块和点选汉字)  https://gitee.com/anji-plus/captcha?_from=gitee_search


商业验证码

商业验证码通常都是通过在前端定义更高级的人际交互操作,来达到更难被计算机程序模拟破解的目的.互联网的很多商业场景中,经常会采用一种或者多种验证码整合的方式来提高验证码安全性

1.极验验证码https://www.geetest.com

2.网易网盾https://dun.163.com/product/captcha

3.顶象科技https://www.dingxiang-inc.com/business/captcha

4.腾讯天御验证码https://cloud.tencent.com/product/captcha

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值