PHP接口開發是PHP常見的技術,能夠經過接口進行一些操做,能夠訪問接口獲取數據,給app提供數據接口等,可是若是接口沒有加密解密的過程,很容易發生盜用和不安全的操做。php
下面例子簡單講解PHP接口開發加密技術:git
如app要請求用戶列表,api是「index.php?module=user&action=list」github
app生成token = md5sum (‘user’.’2012-11-28′.’#$@%!’.list) = 880fed4ca2aabd20ae9a5dd774711de2;api
則實際發起請求爲 「index.php?module=user&action=list&token=880fed4ca2aabd20ae9a5dd774711de2」瀏覽器
服務器端接到請求用一樣方法計算token:安全
1
2
3
4
5
6
7
|
$module = $_GET['module'];
$action = $_GET['action'];
$token = md5sum($module.date('Y-m-d',time()).'#$@%!*'.$action);
if($token != $_GET['token']){
alarm('access deny');
exit();
}
|
這樣就判斷了請求url參數是合法的,容許訪問。關鍵是接口token參數的構造。服務器
還有一種方法用到cookie,這種狀況則不適用於讀取接口數據的應用場景,適合在瀏覽器中訪問接口。cookie
1.請求頭裏帶用戶username和password,到服務器端作驗證,經過才繼續下邊業務邏輯。app
優勢:防止了服務器端api被隨意調用。
缺點:每次都交互用戶名和密碼,交互量大,且密碼明文傳輸不安全。加密
2.第一次請求,要求username和password,驗證經過,種cookie到客戶端,app保存cookie值。
每次請求帶上cookie。
點評:和pc上瀏覽器認證的原理同樣了。