首先問大家一個問題,你在寫開放的API接口時是如何保證數(shù)據(jù)的安全性的?先來看看有哪些安全性問題在開放的api接口中,我們通過http Post或者Get方式請求服務(wù)器的時候,會面臨著許多的安全性問題,例如:
請求來源(身份)是否合法?
請求參數(shù)被篡改?
請求的唯一性(不可復(fù)制),防止請求被惡意攻擊
為了保證數(shù)據(jù)在通信時的安全性,我們可以采用TOKEN+參數(shù)簽名的方式來進行相關(guān)驗證。
比如說我們客戶端需要查詢產(chǎn)品信息這個操作來進行分析,客戶端點擊查詢按鈕==》調(diào)用服務(wù)器端api進行查詢==》服務(wù)器端返回查詢結(jié)果
一、不進行驗證的方式
api查詢接口:
客戶端調(diào)用:http://api.XXX.com/getproduct?id=value1
如上,這種方式簡單粗暴,在瀏覽器直接輸入"http://api.XXX.com/getproduct?id=value1",即可獲取產(chǎn)品列表信息了,但是這樣的方式會存在很嚴(yán)重的安全性問題,沒有進行任何的驗證,大家都可以通過這個方法獲取到產(chǎn)品列表,導(dǎo)致產(chǎn)品信息泄露。
那么,如何驗證調(diào)用者身份呢?如