网站短信发送接口一直在被人循环调用, 严重影响到 app 端的运行性能, 我是先把网站关掉了, 但是接口一直还在调用, 性能问题还是没解决, 求问解决思路
环境: windows server 2008 + apache + php + mysql
网站短信发送接口一直在被人循环调用, 严重影响到 app 端的运行性能, 我是先把网站关掉了, 但是接口一直还在调用, 性能问题还是没解决, 求问解决思路
环境: windows server 2008 + apache + php + mysql
记录IP, 手机号, 都很难完全防止.
试个思路.
每发送多少条短信, 要求客户端提供一次验证码, 否则就不发.
比如每十条, 要求输入一次验证码.
IP, 手机号, 这些也要记录.
1 回答4k 阅读✓ 已解决
3 回答1.8k 阅读✓ 已解决
2 回答2.2k 阅读✓ 已解决
2 回答796 阅读✓ 已解决
1 回答1k 阅读✓ 已解决
1 回答1.4k 阅读✓ 已解决
2 回答2.2k 阅读
有几个解决思路,我分别简单介绍下。
第一种,可以查看access.log日志,看一下接口访问情况,某个IP如果一分钟内几十次那肯定是在刷了,可以对这个IP做一些限速或者封禁处理,比如这个IP再访问你可以按照自定义的规则让他去按一定时间访问,或者干脆直接黑名单,网络层直接拒绝一切访问。
第二种思路,记录下访问IP,和每分钟最大访问次数和访问时间,当用户访问接口并提交成功后,相关信息放到Memcache或者Redis里,做一个对比如果过期了再提交,没过期就不提交。
第三种思路,做反向代理,内部才能调用接口,然后在代理层对访问进行限制,其实跟第一种思路差不太多。
以上是我个人思考的,不一定是最优的解决方案,欢迎大家批评指正。