大家都知道在手机上填忘记密码的时候,绝大部分平台都是使用手机号作为其中的一个条件,如果你没有在这家平台注册,那么就会反馈手机号不存在。
这是一个非常常见的功能,但是对于黑客来讲,这个功能够暴利了。
很多同行业的竞争者需要挖角其它公司客户,但是怎么知道这些平台的客户有哪些?
直接通过这个接口,暴力破解就可以了。
是不是很黄很暴力!
因为公司处理的业务都是国内业务,所以只要直接在 Nginx 写脚本,把所有来自国外的IP都给屏蔽,可以暂时解决被国外 IP 攻击的问题。
上线后果然消停了,服务器也不过载了,App 访问也正常了。
第 6 天可能黑客过了一晚上也反应过来了,又开始使用国内的服务器代理IP高频调用此接口,既然黑客使用了国内的IP地址,肯定不能把国内IP都封了吧。
不过在 Nginx 之后还有一个前置服务器,在前置服务器中加一个非常简单的过滤器:设置一个IP地址在某个时间段内(可配置)只能访问此接口5次,即可解决此问题。
然后再以用户为维度加限制,一个用户在某个时间段内(可配置)只能访问此接口5次。
上面这些手段都上完之后,一切都安静了,再也没有出现过服务过载或者用户反馈操作反应慢的问题了。
但是如果黑客有足够多的国内 IP 呢,为了防止出现这样的问题,我们再接着对产品进行升级,来防止黑客的这种可能性。
我们都知道现在很多 APP 页面,为了方便用户操作在忘记密码的时候没有图形验证码,或者有图形验证码却比较简单可以机器破解。
所以需要升级新一代的智能验证措施,现在很多创业公司都可以提供这种服务,这样就从各个维度防止了黑客通过暴力手段获取客户信息。
2.总结其实据我所知,很多互联网公司到现在仍然存在这种漏洞,很容易让黑客通过暴力破解就拿到用户注册的手机号,只要拿到了用户的手机号后面就可以采用各种营销策略。
这是目前很多公司,采用的一种竞争手段。
有的时候,产品的易用性和安全性其实是有冲突的,产品在设计的时候,其实就应该和技术多考虑风控的相关设计,不然在产品运营的后期容易出现问题。
一个大型互联网公司中风险点非常多,服务器风险点、业务风险点都需要做提前考虑,同时公司必须配备相应的安全人员,对公司网站做常规安全巡检。
监控公司所有的访问接口频次,定期把公司里面所有的IP访问情况做成图表进行分析,看哪些是正常的请求,哪些是异常的访问。
定期排查统计分析访问的所有请求,可以提前发现很多问题。
开发人员和黑客斗争其实是一个长期的工作,任何一个访问量比较大的公司都会遇到类似的问题,遇到问题不要惊慌,仔细排查每一个细节,最终肯定会找到问题的答案。
在我的职场经历中,和黑客有过非常多交手的经历,现在回过头来看,这些经历才是我提升最快的最好养分。
解决问题是程序员成长的第一动力,解决大问题是成为大牛的关键。程序员的一生,也就是不断解决问题的一生。
这样看来,我们要感谢职场上遇到的那些困难!
所有能爬过去的问题都成为了经历和谈资,只有那些越不过的 BUG 才能称之为问题。