需求分析
一、站在被攻击者的角度而言,首先要保证的是:其手机号短时间内不收到多条短信(假定为每分钟最多收到1条),而若攻击者以分钟为单位调用接口,对被攻击者而言也难以接受,故同样要保证的是:被攻击者在同一天内不收到多条短信(假定为5条)。
二、站在服务提供者的角度而言,平台不希望发出大量无用短信,从而增加系统压力与短信费用,但不能以简单的限制每日发送短信总数量来做处理,因为当攻击者恶意调用多次接口导致系统不再提供服务后,将影响用户的正常注册。同时,在业务增长期,注册人数难以用固定的数值来衡量,对于平台而言,识别出可疑的异常调用者是最好的解决方案。
三、站在普通用户的角度而言,在能够保证正常注册以外,注册的体验也较为关键,比如:未收到短信时点击重新发送的时间不宜过长、验证码不宜太过复杂等。
四、系统压力与处理速度上,若这一套防刷机制过于复杂,在调用时要进行多种检验、判断,会对系统造成压力,同时用户收到短信的速度也会减慢。
在各类场景如:
1.同一ip对同一手机号的大量发送
2.同一ip下对不