基于IP进行短信防护

我们最近开发了一款全新的产品,一开始短信的防护是依靠生成动态gif验证码来实现的,但是最近产品提出这个方案对用户不太友好,要求我们改成基于IP的防护,且不说这种方式对于小区或是学校这种出口只有少数IP的情景不太好限制,且说我们怎么拿到用户的真实IP就是一个问题.我们之前拿到客户的IP的 X-Forwarded-For 方式用户是可以造假的,具体文章参考 http://www.jianshu.com/p/98c08956183d .
我们线上的主营业务是买了第三方的防护,因此对于特定的接口访问,可以在他那里帮我们拦截,但是我们新上的项目,还没有盈利,未来的收益是不确定的,不太好直接买服务,因此拦截就得靠我们自己了.我们的网络结构是用户首先连接阿里的LBS服务,然后转发到我们平台的nginx服务器,然后再转发到我们的jetty服务器.其中nginx服务负责把用户的https请求给转成http请求分发给后端jetty服务.因此和用户的客户端真正tcp握手的就是nginx,它能拿到用户的真正的IP地址,因此在java代码里面拿用户IP就得取X-Real-IP.当然如果我们的这个应用用户都使用的话,我们对接了第三方防护了,代码也不需要改动,只需要修改nginx配置,把第三方拿到的IP放到X-Real-IP中就可以了

你可能感兴趣的:(安全防护)