短信接口被攻击后的处理

我们公司的前端注册的时候需要接收验证码来检验用户身份,因此需要调用第三方公司的短信服务。前一段时间,短信服务商告诉我们,我们的服务被攻击了,疯狂的发送短信。不得已将被攻击的那个应用先停了(反正那个应用访问量也不大,不是我们现阶段重点项目)。
这两天有时间后,处理了这个问题。面对这个问题,首先想到的就是对用户的ip进行限制,单一ip每24小时请求短信数量有一个上限,但是上线运行了一下,发现攻击我们的服务还在跑着,不停的请求发送短信。但是用ip的这种方法不合适,因为对方是用一个ip访问请求几个号码后,ip就变了,有可能是用多台肉机攻击的,也有可能是用同一台机器,请求几次后,就断开网络重新拨号,导致运营商重新为他分配了一个ip。总之这个方案不行。
换一个思路,加图片验证码。尝试了一下。从网上搜了一下代码,找到了生成png格式的代码,试了一下,没有问题。只是需要转成base64格式,返回给前端直接显示。后来搜了一下,发现gif格式的图片机器识别的难度更高。从网上找到现成的gif格式验证码生成代码,跑了一下,没有问题。同样转成base64格式直接显示在网页上。这次的图片包含6个字母或数字,同一时刻只能看到5个字母,但是6个字母循环显示,用户识别没有问题,就采用这个方案了。机器识别的难度应该比较高了。如果还是被攻击,那就加入汉字,或是加入算数题让用户输入。
从网上看了一下,有一种滑动就可以识别机器操作的,貌似现在淘宝就采用的是这种方案。并且有专门的公司做这样的产品,不过我们不想花钱买,如果以后有时间,可以自己研究一下。

你可能感兴趣的:(前端)