1. 程式人生 > >web api安全問題

web api安全問題

思想如下:

這裡寫api主要考慮三個問題:呼叫者身份是否合法、資料是否被篡改過、重放攻擊。

1、呼叫者身份是否合法?

寫介面時,我們可以提供appid和appsecret用於校驗呼叫方是否為合法的使用者。

appid:使用者唯一標識。(作為請求引數的一部分

appsecret:使用者金鑰。(注:這個不放到請求引數裡

2、資料是否被篡改過?

這裡通過簽名的方式來實現。思路就是把 appid+appsecret+timestamp+params 通過資訊摘要演算法(md5、sha-1、sha-256之類)進行加密,然後會得到加密串,這個加密串就是我們所說的 “簽名

”(作為請求引數的一部分)。這個簽名也會傳到後臺。只要原字串發生了改變,那麼它簽名結果會改變。因此通過簽名就可以判斷保資料是否被改動過。

params :請求引數。

3、重放攻擊?

這個主要通過timestamp(時間戳)來實現。呼叫方每次請求的時候,會帶上一個timestamp(作為請求引數的一部分),到api提供方接受這個引數,然後再和當前timestamp進行比對,如果之差超過一定時間,就作為請求失效處理。具體時間看具體業務需求。

基本思路大概就是這樣。如果appsecret沒有被洩露和簽名沒有被暴力破解的話,安全性還是有很大的保障。如果安全性要求更高的話,可以對引數做加密,到後臺再解密。