API介面安全性設計思路

2021-06-29 05:26:17 字數 2172 閱讀 2630

1.公共介面,任何人都可以訪問呼叫

1.1.適合場景,公司後台整合廣告管理,提供統一的介面返回給公司其他專案呼叫和郵件模板呼叫,這時候需要設計乙個統一的介面,返回廣告的內容。還有天氣查詢等場景。  

public result syncinfo(@requestparam(name = "data")string data)

infovo infovo = jsonobject.parseobject(data,infovo.class);

dealinfo(infovo);

return new result("成功!",true, httpcode.status_200);

}2.介面引數加密

2.1.適合場景,公司內部兩個專案組進行對接,為了防止介面被暴露和偽造訪問,這個時候需要對引數進行加密處理,防止介面被其他外部人員呼叫,一般採用desc或者aes對稱加密,約定好秘鑰進行對接。

public result syncinfo(@requestparam(name = "data")string data)

des des = new des("秘鑰".getbytes());

string j = des.decryptstr(data);

logger.debug("解碼前:" + data);

logger.debug("解碼後:" + j);

infovo infovo = jsonobject.parseobject(j,infovo.class);

dealinfo(infovo);

return new result("成功!",true, httpcode.status_200);

}catch (exception e)}}

3.介面時效性加密+介面引數加密

3.1.適合場景,內部介面加密過的資料鏈結被暴露,不斷有相同資料對介面進行訪問,這個適合需要對介面加入時間戳引數,設計失效時間解決這個問題。

public result syncinfo(@requestparam(name = "data")string data)

des des = new des("秘鑰".getbytes());

string j = des.decryptstr(data);

logger.debug("解碼前:" + data);

logger.debug("解碼後:" + j);

infovo infovo = jsonobject.parseobject(j,infovo.class);

if(addsecondes(infovo.gettime(),20) < new date().gettime())

dealinfo(infovo);

return new result("成功!",true, httpcode.status_200);

}catch (exception e)}}

4.介面時效性+介面引數加密+不同**的私鑰

4.1適合場景, 當介面秘鑰被洩露時,我們可以對不同的資料**設定不同的私鑰,這樣即使介面秘鑰被洩露,沒有私鑰,依然不能對介面進行操作,而且可以記錄是哪個專案的秘鑰被洩露,快速定位出問題的**,且不會影響其他專案呼叫。

public result syncinfo(@requestparam(name = "data")string data)

des des = new des("基礎秘鑰".getbytes());

string j = des.decryptstr(data);

logger.debug("解碼前:" + data);

logger.debug("解碼後:" + j);

infovo infovo = jsonobject.parseobject(j,infovo.class);

if(addsecondes(infovo.gettime(),20) < new date().gettime())

string sign = getsignbyfrom(info.getfrom());

logger.debug("**秘鑰"+sign);

string k = des.decryptstr(info.getdata);

dealinfo(k);

return new result("成功!",true, httpcode.status_200);

}catch (exception e)}}

API介面安全性設計

介面的安全性主要圍繞token timestamp和sign三個機制展開設計,保證介面的資料不會被篡改和重複呼叫,下面具體來看 token授權機制 使用者使用使用者名稱密碼登入後伺服器給客戶端返回乙個token 通常是uuid 並將token userid以鍵值對的形式存放在快取伺服器中。服務端接收...

API介面安全性設計

介面的安全性主要圍繞token timestamp和sign三個機制展開設計,保證介面的資料不會被篡改和重複呼叫,下面具體來看 token授權機制 使用者使用使用者名稱密碼登入後伺服器給客戶端返回乙個token 通常是uuid 並將token userid以鍵值對的形式存放在快取伺服器中。服務端接收...

API介面安全性設計

介面的安全性主要圍繞token timestamp和sign三個機制展開設計,保證介面的資料不會被篡改和重複呼叫,下面具體來看 token授權機制 使用者使用使用者名稱密碼登入後伺服器給客戶端返回乙個token 通常是uuid 並將token userid以鍵值對的形式存放在快取伺服器中。服務端接收...