php api 介面token!
阿新 • • 發佈:2018-12-06
PHP介面開發是PHP常見的技術,可以通過介面進行一些操作,可以訪問介面獲取資料,給app提供資料介面等,但是如果介面沒有加密解密的過程,很容易發生盜用和不安全的操作。
下面例子簡單講解PHP介面開發加密技術:
如app要請求使用者列表,api是“index.php?module=user&action=list”
app生成token = md5sum (‘user’.’2012-11-28′.’#[email protected]%!’.list) = 880fed4ca2aabd20ae9a5dd774711de2;
則實際發起請求為 “index.php?module=user&action=list&token=880fed4ca2aabd20ae9a5dd774711de2”
伺服器端接到請求用同樣方法計算token:
PHP1 2 3 4 5 6 7 |
$module = $_GET['module'];
$action = $_GET['action'];
$token = md5sum($module.date('Y-m-d',time()).'#[email protected]%!*'.$action);
if($token != $_GET['token']){ |
這樣就判斷了請求url引數是合法的,允許訪問。關鍵是介面token引數的構造。
還有一種方法用到cookie,這種情況則不適用於讀取介面資料的應用場景,適合在瀏覽器中訪問介面。
1.請求頭裡帶使用者username和password,到伺服器端做驗證,通過才繼續下邊業務邏輯。
優點:防止了伺服器端api被隨意呼叫。
缺點:每次都互動使用者名稱和密碼,互動量大,且密碼明文傳輸不安全。
2.第一次請求,要求username和password,驗證通過,種cookie到客戶端,app儲存cookie值。
每次請求帶上cookie。
點評:和pc上瀏覽器認證的原理一樣了。