短信平臺(tái)提供給公司業(yè)務(wù)系統(tǒng)的短信下發(fā)接口是一個(gè)get方式的http協(xié)議的url:
http://a.b.com/SmsSend?acc=exampleacc&pwd=kx%ek@704xoek@*&phone=12345678910&content=%E8%BF%99%E6%98
這個(gè)url暴露了下發(fā)短信的系統(tǒng)賬號(hào)和密碼悦冀。而且趋翻,站點(diǎn)配置了二級域名,所以一旦被盜用盒蟆,很容易出現(xiàn)短信盜刷踏烙。安全方面必須要控制一下师骗。
我想的是使用信息簽名。url參數(shù)去掉pwd讨惩,不讓它作為傳輸用辟癌,讓消費(fèi)端保留在自己的服務(wù)器中。然后荐捻,增加一個(gè)請求時(shí)間reqtime黍少,14位的yyyyMMddHHmmss時(shí)間戳。然后基于acc靴患、reqtime仍侥、phone的值,用pwd作為key來生成md5摘要作為簽名鸳君,給sign參數(shù)。即最終將上面的url改為:
http://a.b.com/SmsSend?acc=exampleacc&reqtime=20180711202552&sign=64558E73E36581D74C6B708BB5E840EF&phone=12345678910&content=%E8%BF%99%E6%98
考慮到涉及到的業(yè)務(wù)系統(tǒng)較多患蹂,而且一些老的系統(tǒng)也沒有人在維護(hù)或颊,所以這個(gè)方式只對目前在運(yùn)營的系統(tǒng)的短信賬號(hào)來做改造,兼容老系統(tǒng)的調(diào)用传于。
今天跟另一個(gè)同事討論囱挑。他同時(shí)提了個(gè)建議。讓運(yùn)維做IP白名單沼溜。因?yàn)槎绦牌脚_(tái)只提供給公司內(nèi)部的業(yè)務(wù)系統(tǒng)平挑,所以做個(gè)IP白名單就好了,其他非法IP的請求直接拒之門外系草。
這樣通熄,我把上面的短信接口(http://a.b.com/SmsSend)提供給運(yùn)維,他在Nginx做好配置找都,服務(wù)器層面得到了保障唇辨。同時(shí),日后再結(jié)合我上面應(yīng)用層面的安全控制能耻,就比較完美了赏枚。