防止恶意攻击短信验证码接口方法

1、手机号码限制:限制单个手机号码每天的最大发送次数。超过次数不能发送短信,可以考虑将手机号码加入黑名单,禁止1天。 2、短信发送时间间隔限制:限制同一个手机号码重复发送的时间间隔。通常设置为60-120秒,前端做倒计时限制,时间未到不能点击发送短信按钮,后台也做时间间隔限制,时间未到不能发送短信。 3、IP地址限制:限制每个IP地址每天的最大发送次数。防止通过同一个IP地址不同手机号码进行恶意攻击。超过次数不能发送短信,可以考虑将IP地址加入黑名单,禁止1天。可以考虑限制同一个IP地址每分钟的接口请求频率。 4、发送流程限制:将流程分成两个步骤。如:注册用户,将发送短信验证码和设置用户名密码分成两个步骤,第一步一个页面用来设置用户名和密码,用户设置用户名和密码发送到后台,获取到后台返回的第一步成功回执之后,进入第二步另一个页面发送手机短信验证码。 忘记密码,找回密码,第一步输入用户名,第二步发送短信验证码。 5、增加图片验证码:发送短信验证码时,要求输入图片验证码,每个图片验证码仅能使用1次,使用1次后,不管输入的图片验证码是否正确自动失效。如果输入错误更新图片验证码。图片验证码失效可以防止图片验证码识别软件尝试多次识别,可以考虑复杂的图片验证码或点触验证、滑动验证。 6、对发送者进行唯一性识别:防止修改参数伪造多个IP地址和手机号码进行恶意攻击,用Token作为唯一性识别标识,后台将Token注入到前端,前端可以获取到Token,请求发送短信验证码接口时带上Token,后台接收到Token进行验证,验证未通过不能发送短信。 7、发送短信验证码,短信验证码有效期内,发送相同的短信验证码。比如设置30分钟有效,短信发送时间间隔限制为60秒,第一次发送之后,60秒倒计时结束,点击按钮第二次发送,第二次发送的验证码和第一次相同。 8、短信验证码可以考虑数字和字母组合。 9、短信验证码输入错误次数限制,比如设置短信验证码输入错误3次后,这个短信验证码就不能使用了。防止猜测短信验证码恶意注册。 10、上行短信验证码:对于可疑用户要求其主动发短信。

java防止注册刷短信攻击_java面试(1)如何防止恶意攻击短信验证码接口相关推荐

  1. java并发核心知识体系精讲_Java 面试突击之 Java 并发知识基础 amp; 进阶考点全解析

    版权说明:本文内容根据 github 开源项目整理所得 项目地址: https://github.com/Snailclimb/JavaGuide​github.com 一.基础 什么是线程和进程? ...

  2. java 暂停等返回值在执行_java面试技巧(2)

    java面试试题及答案 以下是Java面试问题及答案: 1.简要介绍java程序的健壮性. 答:JAVA 程序会在编译和运行的时候自动的检测可能出现的错误,而且它是一种强类型语言,对于类型的检查很严格 ...

  3. Java文件和文件夹的区别_Java面试系列-webapp文件夹和WebContent文件夹的区别?-kingsoft是什么文件夹...

    我的程序员面试系列 面试题:Java Web Project里我们会遇到下面两种文件夹:webapp和WebContent. 这两个文件夹下都有个字文件夹WEB-INF,里面都有web.xml.为什么 ...

  4. java 如何判定消息已在队列_Java面试—消息队列

    消息队列面试题 题目来自于中华石杉,解决方案根据自己的思路来总结而得.题目主要如下: 1. 为什么要引入消息队列? 消息队列的引入可以解决3个核心问题: 解耦 异步 削峰 解耦 在一个项目中,如果一个 ...

  5. 短信业务 防恶意攻击解决方案

    一.方案概述 短信验证码接口被恶意攻击,不仅会会造成大额的短信服务费用,更会对用户造成骚扰,引起投诉,降低公司形象. 二.系统涉及短信业务场景 略. 三.恶意攻击的途径 由于裸露短信发送接口的漏洞,恶 ...

  6. 高防IP可以抵御哪些恶意攻击?

    高防IP协议可以隐藏用户的站点,使得攻击者无法发现恶意攻击的目标网络资源,从而提高了源站的安全性. 能够有效抵御常见的恶意攻击类型ICMPFlood.UDPFlood.TCPFlood.SYNFloo ...

  7. 如何防止短信验证码接口、登录注册入口被恶意调用攻击?

    目录 前言 1.短信验证码是什么? 2.为什么要对短信验证码进行防护? 3.有哪些常见的防护手段? 4.这些防护手段有没有用呢,到底该如何选择? 5.结语 前言 最近遇到一个关于防止短信验证码被刷的问 ...

  8. java 短信平台_Java通过SMS短信平台实现发短信功能

    本程序是通过使用中国网建提供的SMS短信平台实现的(该平台目前为注册用户提供5条免费短信,3条免费彩信,这足够用于我们测试用了.在使用前需要注册,注册地址为http://sms.webchinese. ...

  9. java发送短信模板_java发送短信

    java发送短信一般步骤 一.在中国网建中注册用户:本程序是通过中国网建提供的SMS短信平台实现的,该平台新用户注册可以拥有免费5条普通短信和3条彩信,足够进行尝试和体验了.中国网建注册地址:http ...

最新文章

  1. 教你如何rEFIt-让你开机免按option!
  2. Spark 开窗函数
  3. 【POI2007】OSI-Axes of Symmetry【计算几何】【manacher】
  4. Android学习笔记——Handler(二)
  5. oracle获取今天凌晨的时间_oracle查询日期语句有哪些?
  6. 以前的报表都白做了!app上做可视化数据分析,这个方法太强了
  7. python安装matplotlib绘图库
  8. Pydev 的覆盖率测试python coverage以及其他使用
  9. C# aspx 数据绑定集中(待修改)
  10. spark读取gz文件与parquet文件
  11. 硕士研究生培养方案及课程大纲
  12. 联想计算机无线网络设置密码,联想笔记本电脑wifi怎么连接
  13. “好工作”的最佳标准:坚持理想,顺便赚钱——一个媒体人的心路历程
  14. Cadence用于版图设计时芯片logo的制作
  15. 数据工程师岗位职责解析
  16. IFD-x 微型红外成像仪(模块)的温度测量和成像精度
  17. 论坛没落了吗?传统BBS(论坛)何去何从?
  18. Python实战之提取豆瓣华语新碟榜数据
  19. “Spark上流式机器学习算法实现”终期检查报告
  20. 产品经理学习手册(一)产品经理:挖掘发现用户需求、满足用户需求;让世界变得更美好

热门文章

  1. 19、L298N 电机驱动板
  2. platform驱动模型使用总结
  3. 兔云资讯_游戏研发工程师面试更新_20200801
  4. 图像语义分割实践(三)模型搭建与实现
  5. Android网易评论盖楼效果实现
  6. 医药行业销售过程管理系统解决方案
  7. 数字正交下变频(多相滤波法)
  8. 同步器Synchronizer
  9. Linux自动同步时间的方法
  10. 自己动手实现远程执行功能