在手機中使用PHP接口與web對接時我們會做一個加密的值進行握手驗證了,下面我們就來為各位介紹一些方法與原理了.
方法一:固定一個值,如md5('m.survivalescaperooms.com') 然后把生成的字符在url或post傳遞時進行驗證.
方法二:稍微復雜點雙方約定好生成的格式
下面例子簡單講解PHP接口開發加密技術,如app要請求用戶列表,api是“index.php?module=user&action=list”
app生成token = md5sum(‘user’.’2012-11-28′.’m.survivalescaperooms.com’.list) = 880fed4ca2aabd20ae9a5dd774711de2;
則實際發起請求為 “index.php?module=user&action=list&token=880fed4ca2aabd20ae9a5dd774711de2”
服務器端接到請求用同樣方法計算token,代碼如下:
- $module = $_GET['module'];
- $action = $_GET['action'];
- $token = md5sum($module.date('Y-m-d',time()).'m.survivalescaperooms.com'.$action);
- if($token != $_GET['token']){
- alarm('access deny');
- exit();
- }
這樣就判斷了請求url參數是合法的,允許訪問,關鍵是接口token參數的構造,還有一種方法用到cookie,這種情況則不適用于讀取接口數據的應用場景,適合在瀏覽器中訪問接口.
1.請求頭里帶用戶username和password,到服務器端做驗證,通過才繼續下邊業務邏輯.
優點:防止了服務器端api被隨意調用。
缺點:每次都交互用戶名和密碼,交互量大,且密碼明文傳輸不安全.
2.第一次請求,要求username和password,驗證通過,種cookie到客戶端,app保存cookie值.
每次請求帶上cookie.
點評:和pc上瀏覽器認證的原理一樣了.
新聞熱點
疑難解答