1.Token授權機制,使用者使用使用者名稱密碼登入後,伺服器將Token回傳給客戶端。
2.時間戳超時機制,使用者每次請求都會帶著當前時間戳timestamp。
伺服器收到timestamp後,與目前時間進行比較,如果時間差大於一定時間(例如5分鐘),則認為請求無效。時間戳超時機制是防禦DOS攻擊的有效手段。
3、簽名機制。
在Token和時間戳記中加入其他請求參數,然後用MD5或SHA-1演算法加密。
實例
/** * @desc 接受參數處理 */ private function dealParam(){ //接受header參數--系統參數 $systemParam=getAllHeadersParam(); //接受body資料--業務參數(json格式) $data=file_get_contents('php://input'); //讀取設定檔中的私鑰資訊 $api_apiKey=C('api_apiKey'); $privatekey=$api_apiKey[$systemParam['token']]; $arr['token'] =$systemParam['token']; //服務端分配的識別(不同客戶端需使用不同的標識) $arr['timestamp']=$systemParam['timestamp']; //時間戳,UTC時間,以北京時間東八區(+8)為準$arr['version'] =$systemParam['version' ]; //版本號$arr['sign'] =$systemParam['sign']; //簽章$arr['source'] =$systemParam['source']; //來源(0-安卓/1 -IOS/2-H5/3-PC/4-php/5-java) $arr['data'] =json_decode($data,true); //業務參數json格式 $arr['method'] =$data['method']; //存取介面,格式:模型名.方法名 return $arr; }
以上就是php介面安全的三個機制,希望對大家有幫助。更多php學習指路: 原始碼網