1. 程式人生 > >php api 介面token!

php api 介面token!

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:

          PHP  
1 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']){
    alarm('access deny');     exit(); }

這樣就判斷了請求url引數是合法的,允許訪問。關鍵是介面token引數的構造。

還有一種方法用到cookie,這種情況則不適用於讀取介面資料的應用場景,適合在瀏覽器中訪問介面。

1.請求頭裡帶使用者username和password,到伺服器端做驗證,通過才繼續下邊業務邏輯。

優點:防止了伺服器端api被隨意呼叫。
缺點:每次都互動使用者名稱和密碼,互動量大,且密碼明文傳輸不安全。

2.第一次請求,要求username和password,驗證通過,種cookie到客戶端,app儲存cookie值。

每次請求帶上cookie。

點評:和pc上瀏覽器認證的原理一樣了。