暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

短信验证码接口,如何防刷?

原创 编程经验共享 2023-06-13
3298

恶意攻击者通常会通过自动化工具进行攻击,尤其是会针对一些高频接口、核心接口进行恶意的访问,恶意的攻击,比如:注册登录接口、秒杀接口等等。

接口被狂刷会带来很高的瞬时吞吐量,很容易超过1Wqps,甚至10WQPS。这样的超高并发,会导致系统的瞬时雪崩,严重的可能会导致线上系统瘫痪。

接口狂刷的主要防范措施

1.使用HTTPS

使用 HTTPS 可以保护数据传输的安全性,可以防止恶意攻击者窃取数据。HTTPS 使用 SSL/TLS 协议对数据进行加密,可以确保数据在传输过程中不被篡改或窃取。

2.交互式验证

主要措施就是验证码验证及人机验证。像登录这类接口我们可以添加一个验证码验证,要求用户输入验证码,但是对于短信验证码接口,我们可以通过人机验证方式,检查用户行为,例如:拖动滑块或识别图片中的文字等等

3.安全参数校验

当接口被恶意狂刷时,可以通过安全参数校验来防止这种攻击。安全参数校验是指在接口请求中添加一些校验参数,例如时间戳、随机字符串、签名等,来验证请求的合法性。这样可以防止攻击者通过恶意程序进行大量的请求攻击。

具体来说,可以通过以下步骤来实现安全参数校验:

  1. 在接口请求中添加时间戳参数,例如:timestamp=1622945123
  2. 在接口请求中添加随机字符串参数,例如:nonce=abc123
  3. 将所有请求参数按照参数名的字母顺序排序,例如:nonce=abc123&timestamp=1622945123
  4. 将排序后的参数按照“参数名=参数值”的格式拼接成一个字符串,例如:nonce=abc123&timestamp=1622945123
  5. 将拼接后的字符串加上一个密钥(可以是预先约定好的密钥),例如:nonce=abc123&timestamp=1622945123&key=secret
  6. 对加密后的字符串进行哈希计算,例如使用 MD5 算法,得到一个签名值,例如:c0c3f9a2a4c4c4dcd6d5b7b2a2e4d7b1。将签名值添加到接口请求中,例如:nonce=abc123&timestamp=1622945123&signature=c0c3f9a2a4c4c4dcd6d5b7b2a2e4d7b1
  7. 在接口服务端对接口请求进行校验时,按照相同的算法计算签名值,并与请求中的签名值进行比对,如果一致,则说明请求合法,否则说明请求不合法

通过以上步骤,可以有效地防止接口被恶意狂刷的攻击。

理论上,哈希计算很难破解,但是如果攻击者知道了hash算法和盐,攻击者就有可能伪造出带有正确校验位的签名值,从而绕过接口的限流和安全机制,因此,该方案主要适用于需要简单防范一些低强度攻击的场景,例如防范垃圾请求或非法爬虫等

4.访问限流

访问限流是一种常见的保护机制,用于控制对某个资源的访问速率,以防止过多的请求导致系统负载过高或崩溃。

限流主要有两种,一是面向用户限流:我们可以通过nginx对用户IP登进行限流。

还有一种是面向接口限流,针对某个核心接口限制用户的请求次数。我们可以在应用层利用Redis添加当前用户的请求限制

5.IP封禁

IP封禁是常见的网络安全措施,用于保护服务器免受恶意攻击。IP封禁是指将某个IP地址列入黑名单,禁止其访问服务器。

在实际应用中,可以通过配置防火墙规则、使用反向代理服务器、使用专业的防火墙软件等方式来实现IP封禁和防刷,我们还可以结合nginx做一个IP封禁的脚本。

后期我们会分享一个基于nginx的IP封禁的脚本,有兴趣的可以关注公众号哦!

6.日志监控

访问日志监控是一种常见的监控方式,用于监控网站、应用程序等的访问情况,可以帮助我们了解用户的行为和需求,以便做出相应的优化和改进。

常见的访问日志监控工具有 Apache 的 AccessLog、Nginx 的 AccessLog、ELK Stack 、PHP 请求日志监控等。这些工具、框架帮助我们收集、分析和可视化访问日志数据,从而更好地了解用户的需求和行为。

监控访问日志可以帮助发现未经授权的访问请求。可以使用日志记录工具来记录每个请求的 IP 地址、时间戳和请求参数。如果发现异常请求,可以及时采取措施,以防止攻击。

希望这篇文章可以帮到正在阅读的你,如果觉得此文对你有帮助,可以分享给你身边的朋友,同事,你关心谁就分享给谁,一起学习共同进步~~~

欢迎关注我的公众号【编程经验共享】,第一时间一起学习新知识!

————————————————————————————
公众号:编程经验共享
墨天轮:https://www.modb.pro/u/545037
个人博客:https://www.motui8.cn/
————————————————————————————

最后修改时间:2023-06-13 09:34:09
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

文章被以下合辑收录

评论