配景
随着技术的发展,人们对于体系安全性和用户体验的要求越来越高。传统的图形验证码虽然在一定程度上能够防止恶意攻击,但用户体验相对较差,且存在被破解的风险。因此,大多数网站体系渐渐采用活动验证码来代替图片验证码。活动验证码是指通过用户活动来验证用户身份的验证码,如滑动拼图、辨认图片中的特定物品等。它的重要性在于可以有效地防止机器人和恶意步伐对网站或应用步伐进行恶意攻击、刷流量、撞库等活动,从而保障了用户和网站的安全。相较于传统的图形验证码等方式,活动验证码更难被破解,同时也更加方便用户操作。另外,活动验证码还可以提高用户的使用体验,淘汰用户的操作负担,提高网站或应用步伐的可用性和用户留存率。
登录流程
登录功能必要活动验证码captcha人工辨认图形正确时才可正常登录,流程通常包括以下几个步调:
- 用户触发登录操作:用户在登录界面输入用户名或手机号等身份信息后,触发登录操作。
- 体系生成活动验证码:体系根据预设的规则或算法,生成一个活动验证码。这个验证码可能是滑动拼图、点击特定区域等情势。
- 表现活动验证码:体系将生成的活动验证码表现在登录界面上,供用户进行操作。
- 用户完成活动验证:用户根据体系提示,完成活动验证码的验证操作。比方,滑动拼图到正确的位置,或点击指定的区域等。
- 体系验证用户活动:用户完成活动验证后,体系将用户的操作与预设的规则或算法进行比对,判断用户的活动是否符合要求。
- 登录验证结果:
- 如果用户的活动符合要求,体系认为用户是真实的,将允许用户登录,并生成相应的登录令牌(token)或其他身份信息,供用户在后续的业务请求中使用。
- 如果用户的活动不符合要求,体系可能认为用户是恶意的,将拒绝用户的登录请求,并可能表现相应的错误信息或提示用户重新进行验证。
- 后续业务请求:用户登录成功后,每次进行业务请求时,都必要携带登录令牌(token)或其他身份信息,以便体系进行身份验证和权限控制。
模拟攻击
1.实践某网站负载请求验证码captcha URL
我们使用hey轻量级压测工具,小试牛刀下, 并发1000,请求1000 到某个网站验证码服务端URL
响应时间均匀20秒
2.此时已不可登录,必要等待较长时间才华响应,导致体系登录不可用,形成DDOS攻击
1)有几种可能性,验证码功能与主工程在一起摆设,故产生连带效应,影响性能
2)验证码服务单独摆设,但高负载请求流量影响了入口网关的带宽。
解决方案
针对这种使用验证码模块的缺失图片生成URL形成的DDoS攻击,解决方案可以从验证码请求的优化、流量控制、动态防护等多个方面进行。以下是应对策略:
1. 限制验证码请求频率与频仍请求处罚机制
- 速率限制:为验证码生成缺失图片的请求设置每IP的请求频率限制,比方每分钟最多3-5次请求。通过Web应用防火墙(WAF)或反向代理实现这一限制。
- 渐进式处罚机制:对于频仍请求验证码的IP实施逐步延长的冷却时间,即每次请求失败后的等待时间递增,逐步减缓恶意请求的攻击频率。
2. 增强验证码生成和验证的随机性
- 动态图片URL:为每次生成的缺失图形使用独立的URL,且加入随机标识或动态Token,使同一个验证码请求无法复用。
- 短期有效期:生成的URL在短时间后失效(比方30秒内),防止攻击者反复请求相同的URL资源。
- 缺失图形位置随机化:每次生成验证码时,缺失的图形位置随机变化,增加恶意脚本请求成功率的难度。
3. 使用前端验证码验证优化与缓存机制
- 前端缓存机制:前端客户端在短时间内(比方5分钟)缓存生成的验证码,淘汰多次革新造成的重复请求压力。
- 预生成验证码:在配景异步预生成一批缺失图片并缓存到CDN,以减轻主服务器在高并发时的生成压力。
4. 增强活动分析和辨认恶意请求
- 活动分析模子:使用机器学习模子或活动分析算法,检测是否存在批量主动化请求特征,辨认并制止非常流量。
- 鼠标轨迹深度检测:验证鼠标轨迹在验证码交互中的真实性,如判断鼠标轨迹的流畅性、速度等,进一步判断是否为主动化脚本生成的伪轨迹。
5. 使用IP灰名单与验证码复杂度调整
- 灰名单机制:对可疑的IP先进入灰名单状态,限制其请求频率或增加额外的复杂验证码步调。对于确认的恶意IP直接封禁。
- 验证码复杂度动态调整:在体系检测到非常流量时,主动增加验证码的难度,如增加缺失图块数量或混淆图形,淘汰脚本主动破解的成功率。
6. 引入外部DDoS防护和流量洗濯
- DDoS防护服务:结合CDN和DDoS防护服务(如Cloudflare、Akamai或AWS Shield)对验证码URL的访问请求进行实时监测和过滤,确保恶意请求不会直接到达服务器。
- 特定流量洗濯:在检测到大量非常流量时,主动启动流量洗濯,将请求引流到DDoS洗濯中心处理处罚。
7. 针对验证码模块的动态监控和日志分析
- 实时监控:对验证码请求量和成功率进行实时监控,一旦发现非常高的请求频率或失败率立刻报警。
- 日志分析:定期对验证码请求日志进行分析,排查可疑的IP、请求模式,以便提前辨认潜伏威胁。
8. 降级策略和备选验证机制
- 体系降级:在遭遇大规模攻击时,可以临时关闭活动验证码或切换到其他验证方式(如短信验证或双因子验证)以保证用户能够正常登录。
- 备选验证:为部分关键用户提供备用验证通道,确保正常用户在攻击期间仍可以访问。
9. 验证码模块隔离摆设
- 模块化隔离:将验证码模块与主要应用逻辑隔离,单独分配服务器资源,制止验证码模块的高负载影响主应用的登录功能。
10. 定期监控和测试
- 定期检查验证码模块的请求量和访问模式,及时辨认非常流量。
- 使用模拟攻击进行压力测试,确保验证码模块能够有效防御恶意请求。
实施效果预期
通过这些方法,能够有效缓解验证码模块URL的DDoS攻击风险,提高体系在高并发和恶意请求下的可用性。
更多参考
Denial of Service Cheat Sheet
https://cheatsheetseries.owasp.org/cheatsheets/Denial_of_Service_Cheat_Sheet.html
本日先到这儿,希望对云原生,技术领导力, 企业管理,体系架构设计与评估,团队管理, 项目管理, 产物管理,信息安全,团队建立 有参考作用 , 您可能感爱好的文章:
构建创业公司突击小团队
国际化环境下体系架构演化
微服务架构设计
视频直播平台的体系架构演化
微服务与Docker介绍
Docker与CI连续集成/CD
互联网电商购物车架构演变案例
互联网业务场景下消息队列架构
互联网高效研发团队管理演进之一
消息体系架构设计演进
互联网电商搜刮架构演化之一
企业信息化与软件工程的迷思
企业项目化管理介绍
软件项目成功之要素
人际沟通风格介绍一
精益IT组织与分享式领导
学习型组织与企业
企业创新文化与等级观念
组织目标与个人目标
初创公司人才招聘与管理
人才公司环境与企业文化
企业文化、团队文化与知识共享
高效能的团队建立
项目管理沟通计划
构建高效的研发与主动化运维
某大型电商云平台实践
互联网数据库架构设计思路
IT基础架构规划方案一(网络体系规划)
餐饮行业解决方案之客户分析流程
餐饮行业解决方案之采购战略制定与实施流程
餐饮行业解决方案之业务设计流程
供应链需求调研CheckList
企业应用之性能实时度量体系演变 如有想了解更多软件设计与架构, 体系IT,企业信息化, 团队管理 资讯,请关注我的微信订阅号:
作者:Petter Liu
出处:http://www.cnblogs.com/wintersun/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。 该文章也同时发布在我的独立博客中-Petter Liu Blog。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |