最近項目遷移,新訂了一套接口安全規(guī)范
記錄一下,歡迎大家一起討論,拍磚。
因為業(yè)務體系原因,這里暫時只說一下基于用戶需要登錄才可調(diào)用的接口安全規(guī)則。
首先服務器與APP終端定義好一套加密規(guī)則,即APP通過集成在client內(nèi)的加密方式可以加密傳輸參數(shù)。
參數(shù)加密大概規(guī)則為將參數(shù)按一定順序打散重組,且生成一個類MD5(當然,也可以循環(huán)MD5)的不可逆sign 用于服務端校驗參數(shù)有無被惡意篡改。
登錄接口例:?
常規(guī)接口:
/login.json?uid=1&pwd=2
加密后的接口:
/login.json?udi1w2dpstk&sign=098f6bcd4621d373cade4e832627b4f6
服務端接受到后首先將參數(shù)生成對應的sign 比對傳來的sign是否一致,然后解析參數(shù),獲取真實需要的參數(shù)。
登錄完成后APP將會收到一個有效期為2個小時的token ,服務端將存儲這個用戶與其對應的token,用于接口鑒權,失效的token是無法通過鑒權的。
APP拿著這個token既可以去進行其他的操作了。
獲取用戶書籍接口(加密后的):
/books.json?udi1w2dpstk&sign=098f6bcd4621d373cade4e832627b4f6&token=098F6BCD4621D373CADE4E832627B4F6
暫時先寫這么多,有時間繼續(xù)。