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以鍵值對的形式存放在快取伺服器中。服務端接收...