PHP開發api介面安全驗證

2021-09-26 10:04:33 字數 2028 閱讀 1113

在實際工作中,使用php寫api介面是經常做的,php寫好介面後,前台就可以通過鏈結獲取介面提供的資料,而返回的資料一般分為兩種情況,xml和json,在這個過程中,伺服器並不知道,請求的**是什麼,有可能是別人非法呼叫我們的介面,獲取資料,因此就要使用安全驗證。

從圖中可以看得很清楚,前台想要呼叫介面,需要使用幾個引數生成簽名。

前台生成乙個簽名,當需要訪問介面的時候,把時間戳,隨機數,簽名通過url傳遞到後台。後台拿到時間戳,隨機數後,通過一樣的演算法規則計算出簽名,然後和傳遞過來的簽名進行對比,一樣的話,返回資料。

在前後臺互動中,演算法規則是非常重要的,前後臺都要通過演算法規則計算出簽名,至於規則怎麼制定,看你怎麼高興怎麼來。

我這個演算法規則是

時間戳,隨機數,口令按照首字母大小寫順序排序

然後拼接成字串

進行sha1加密

再進行md5加密

轉換成大寫。

這裡我並沒有實際的前台,直接使用乙個php檔案代替前台,然後通過curl模擬get請求。我使用的是tp框架,url格式是pathinfo格式。

//curl模擬get請求。

//隨機生成字串

private

function createnoncestr($length = 8)

return "z".$str

; }

/*** @param $timestamp 時間戳

* @param $randomstr 隨機字串

* @return string 返回簽名

*/private

function arithmetic($timestamp,$randomstr

)}接受前台資料進行驗證

<?php /**

* created by phpstorm.

* user: administrator

* date: 2017/3/16 0016

* time: 16:01 */

namespace server\controller;

usethink\controller;

class servercontroller extends

controller

//模擬資料

$arr['name'] = 'api';

$arr['age'] = 15;

$arr['address'] = 'zz';

$arr['ip'] = "192.168.0.1";

echo json_encode($arr

); }

/*** @param $timestamp 時間戳

* @param $randomstr 隨機字串

* @return string 返回簽名

*/public

function arithmetic($timestamp,$randomstr

)}

string(57) ""
這種方法只是其中的一種方法,其實還有很多方法都是可以進行安全驗證

PHP開發api介面安全驗證

目錄 在實際工作中,使用php寫api介面是經常做的,php寫好介面後,前台就可以通過鏈結獲取介面提供的資料,而返回的資料一般分為兩種情況,xml和json,在這個過程中,伺服器並不知道,請求的 是什麼,有可能是別人非法呼叫我們的介面,獲取資料,因此就要使用安全驗證。從圖中可以看得很清楚,前台想要呼...

PHP開發api介面安全驗證

隨機數 隨機生成的隨機數 口令 前後臺開發時,乙個雙方都知道的標識,相當於暗號 演算法規則 商定好的運算規則,上面三個引數可以利用演算法規則生成乙個簽名。然後拼接成字串 進行sha1加密 再進行md5加密 轉換成大寫。curl模擬get請求。隨機生成字串 private function creat...

PHP開發api介面安全驗證

在實際工作中,使用php寫api介面是經常做的,php寫好介面後,前台就可以通過鏈結獲取介面提供的資料,而返回的資料一般分為兩種情況,xml和json,在這個過程中,伺服器並不知道,請求的 是什麼,有可能是別人非法呼叫我們的介面,獲取資料,因此就要使用安全驗證。從圖中可以看得很清楚,前台想要呼叫介面...