短信平台安全控制

短信平台提供给公司业务系统的短信下发接口是一个get方式的http协议的url:

http://a.b.com/SmsSend?acc=exampleacc&pwd=kx%ek@704xoek@*&phone=12345678910&content=%E8%BF%99%E6%98

这个url暴露了下发短信的系统账号和密码。而且,站点配置了二级域名,所以一旦被盗用,很容易出现短信盗刷。安全方面必须要控制一下。

我想的是使用信息签名。url参数去掉pwd,不让它作为传输用,让消费端保留在自己的服务器中。然后,增加一个请求时间reqtime,14位的yyyyMMddHHmmss时间戳。然后基于acc、reqtime、phone的值,用pwd作为key来生成md5摘要作为签名,给sign参数。即最终将上面的url改为:

http://a.b.com/SmsSend?acc=exampleacc&reqtime=20180711202552&sign=64558E73E36581D74C6B708BB5E840EF&phone=12345678910&content=%E8%BF%99%E6%98

考虑到涉及到的业务系统较多,而且一些老的系统也没有人在维护,所以这个方式只对目前在运营的系统的短信账号来做改造,兼容老系统的调用。

今天跟另一个同事讨论。他同时提了个建议。让运维做IP白名单。因为短信平台只提供给公司内部的业务系统,所以做个IP白名单就好了,其他非法IP的请求直接拒之门外。

这样,我把上面的短信接口(http://a.b.com/SmsSend)提供给运维,他在Nginx做好配置,服务器层面得到了保障。同时,日后再结合我上面应用层面的安全控制,就比较完美了。

image
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • iOS网络架构讨论梳理整理中。。。 其实如果没有APIManager这一层是没法使用delegate的,毕竟多个单...
    yhtang阅读 5,535评论 1 23
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 137,173评论 19 139
  • 关于Mongodb的全面总结 MongoDB的内部构造《MongoDB The Definitive Guide》...
    中v中阅读 32,440评论 2 89
  • 点击查看原文 Web SDK 开发手册 SDK 概述 网易云信 SDK 为 Web 应用提供一个完善的 IM 系统...
    layjoy阅读 14,769评论 0 15
  • 认识Java虚拟机的基本结构 Java虚拟机的架构 类加载子系统:加载Class信息,存放于称为方法区的内存空间 ...
    小Noodles阅读 433评论 0 0

友情链接更多精彩内容