手机验证码攻击应对
周六突然接到验证码平台短信被刷的电话,抓进去线上环境查看日志,看到攻击人不用不同的ip,不同的手机号不听刷我们的验证码接口。由于我们平台访问量很小, 所以就停掉了这个服务(如果是大平台的话这是不能原谅的)。
方案一:外部解决方式-攻击IP过滤。
分析了一下日志,发现他的IP地址也就那几个,去 黑名单查询站点去验证了一下果然已经被列入黑名单,于是在nginx一层做一次黑名单过滤。 推荐直接在服务器系统级别iptalbes中配置过滤IP。
http{
.
.
.
include blocksip.conf;
}
blocksip.conf
deny [IP];
.
.
.
allow all;
方案二:内部解决方案-图形验证码
所有调用发送验证码接口处增加图形验证码校验
方案三:内部解决方案-IP请求次数验证
所有调用发送验证码接口处增加图形验证码校验
方案四:内部解决方案-手机号短信发送量限定
单个手机号日发送量做限定
方案五:内部解决方案-手机号发送间隔限定
单个手机号发送间隔限定
方案六:业务流程优化
比如: 将手机短信验证和用户名注册分成两个步骤,用户在注册成功用户名密码后,下一步才进行手机短信验证。