溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

php接口安全的機(jī)制有哪些

發(fā)布時(shí)間:2022-05-12 14:06:49 來(lái)源:億速云 閱讀:91 作者:iii 欄目:大數(shù)據(jù)

本文小編為大家詳細(xì)介紹“php接口安全的機(jī)制有哪些”,內(nèi)容詳細(xì),步驟清晰,細(xì)節(jié)處理妥當(dāng),希望這篇“php接口安全的機(jī)制有哪些”文章能幫助大家解決疑惑,下面跟著小編的思路慢慢深入,一起來(lái)學(xué)習(xí)新知識(shí)吧。

1、Token授權(quán)機(jī)制,用戶使用用戶名密碼登錄后,服務(wù)器將Token返回給客戶端。

2、時(shí)間戳超時(shí)機(jī)制,用戶每次請(qǐng)求都會(huì)帶上當(dāng)前時(shí)間戳timestamp。

服務(wù)器收到timestamp后,與當(dāng)前時(shí)間進(jìn)行比較,如果時(shí)間差大于一定時(shí)間(例如5分鐘),則認(rèn)為請(qǐng)求無(wú)效。時(shí)間戳超時(shí)機(jī)制是防御DOS攻擊的有效手段。

3、簽名機(jī)制。

在Token和時(shí)間戳中加入其他請(qǐng)求參數(shù),然后用MD5或SHA-1算法加密。

實(shí)例

/**
 * @desc 接受參數(shù)處理
 */
private function dealParam(){
    //接受header參數(shù)--系統(tǒng)參數(shù)
    $systemParam=getAllHeadersParam();
    //接受body數(shù)據(jù)--業(yè)務(wù)參數(shù)(json格式)
    $data=file_get_contents('php://input');
    
    //讀取配置文件中的私鑰信息
    $api_apiKey=C('api_apiKey');
    $privatekey=$api_apiKey[$systemParam['token']];
 
 
    $arr['token']    =$systemParam['token'];        //服務(wù)端分配的標(biāo)識(shí)(不同客戶端需使用不同的標(biāo)識(shí))
    $arr['timestamp']=$systemParam['timestamp'];    //時(shí)間戳,UTC時(shí)間,以北京時(shí)間東八區(qū)(+8)為準(zhǔn)
    $arr['version']  =$systemParam['version'];      //版本號(hào)
    $arr['sign']     =$systemParam['sign'];         //簽名
    $arr['source']   =$systemParam['source'];       //來(lái)源(0-安卓/1-IOS/2-H5/3-PC/4-php/5-java)
    $arr['data'] =json_decode($data,true); //業(yè)務(wù)參數(shù)json格式
    $arr['method'] =$data['method']; //訪問(wèn)接口,格式:模型名.方法名
 
    return $arr;
 }

讀到這里,這篇“php接口安全的機(jī)制有哪些”文章已經(jīng)介紹完畢,想要掌握這篇文章的知識(shí)點(diǎn)還需要大家自己動(dòng)手實(shí)踐使用過(guò)才能領(lǐng)會(huì),如果想了解更多相關(guān)內(nèi)容的文章,歡迎關(guān)注億速云行業(yè)資訊頻道。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

php
AI