天天看點

短信平台接口安全控制

摘要:從應用層面和運維層面(協定層)同時做安全控制

短信平台提供給公司業務系統的短信下發接口是一個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來進行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的請求直接拒之門外。