亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 語言 > PHP > 正文

PHP開發api接口安全驗證的實例講解

2024-05-05 00:02:46
字體:
來源:轉載
供稿:網友

php的api接口

在實際工作中,使用PHP寫api接口是經常做的,PHP寫好接口后,前臺就可以通過鏈接獲取接口提供的數據,而返回的數據一般分為兩種情況,xml和json,在這個過程中,服務器并不知道,請求的來源是什么,有可能是別人非法調用我們的接口,獲取數據,因此就要使用安全驗證。

驗證原理

示意圖

php,api接口,安全驗證

原理

從圖中可以看得很清楚,前臺想要調用接口,需要使用幾個參數生成簽名。

時間戳:當前時間

隨機數:隨機生成的隨機數

口令:前后臺開發時,一個雙方都知道的標識,相當于暗號

算法規則:商定好的運算規則,上面三個參數可以利用算法規則生成一個簽名。

前臺生成一個簽名,當需要訪問接口的時候,把時間戳,隨機數,簽名通過URL傳遞到后臺。后臺拿到時間戳,隨機數后,通過一樣的算法規則計算出簽名,然后和傳遞過來的簽名進行對比,一樣的話,返回數據。

算法規則

在前后臺交互中,算法規則是非常重要的,前后臺都要通過算法規則計算出簽名,至于規則怎么制定,看你怎么高興怎么來。

我這個算法規則是

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

2 然后拼接成字符串

3 進行sha1加密

4 再進行MD5加密

5 轉換成大寫。

前臺

這里我并沒有實際的前臺,直接使用一個PHP文件代替前臺,然后通過CURL模擬GET請求。我使用的是TP框架,URL格式是pathinfo格式。

源代碼

<?php/** * Created by PhpStorm. * User: Administrator * Date: 2017/3/16 0016 * Time: 15:56 */namespace Client/Controller;use Think/Controller;class ClientController extends Controller{ const TOKEN = 'API'; //模擬前臺請求服務器api接口 public function getDataFromServer(){  //時間戳  $timeStamp = time();  //隨機數  $randomStr = $this -> createNonceStr();  //生成簽名  $signature = $this -> arithmetic($timeStamp,$randomStr);  //url地址  $url = "http://www.apitest.com/Server/Server/respond/t/{$timeStamp}/r/{$randomStr}/s/{$signature}";  $result = $this -> httpGet($url);  dump($result); } //curl模擬get請求。 private function httpGet($url){  $curl = curl_init();  //需要請求的是哪個地址  curl_setopt($curl,CURLOPT_URL,$url);  //表示把請求的數據已文件流的方式輸出到變量中  curl_setopt($curl,CURLOPT_RETURNTRANSFER,1);  $result = curl_exec($curl);  curl_close($curl);  return $result; } //隨機生成字符串 private function createNonceStr($length = 8) {  $chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";  $str = "";  for ($i = 0; $i < $length; $i++) {   $str .= substr($chars, mt_rand(0, strlen($chars) - 1), 1);  }  return "z".$str; } /**  * @param $timeStamp 時間戳  * @param $randomStr 隨機字符串  * @return string 返回簽名  */ private function arithmetic($timeStamp,$randomStr){  $arr['timeStamp'] = $timeStamp;  $arr['randomStr'] = $randomStr;  $arr['token'] = self::TOKEN;  //按照首字母大小寫順序排序  sort($arr,SORT_STRING);  //拼接成字符串  $str = implode($arr);  //進行加密  $signature = sha1($str);  $signature = md5($signature);  //轉換成大寫  $signature = strtoupper($signature);  return $signature; }}

服務器端

接受前臺數據進行驗證

源代碼

<?php/** * Created by PhpStorm. * User: Administrator * Date: 2017/3/16 0016 * Time: 16:01 */namespace Server/Controller;use Think/Controller;class ServerController extends Controller{ const TOKEN = 'API'; //響應前臺的請求 public function respond(){  //驗證身份  $timeStamp = $_GET['t'];  $randomStr = $_GET['r'];  $signature = $_GET['s'];  $str = $this -> arithmetic($timeStamp,$randomStr);  if($str != $signature){   echo "-1";   exit;  }  //模擬數據  $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){  $arr['timeStamp'] = $timeStamp;  $arr['randomStr'] = $randomStr;  $arr['token'] = self::TOKEN;  //按照首字母大小寫順序排序  sort($arr,SORT_STRING);  //拼接成字符串  $str = implode($arr);  //進行加密  $signature = sha1($str);  $signature = md5($signature);  //轉換成大寫  $signature = strtoupper($signature);  return $signature; }}

結果

string(57) "{"name":"api","age":15,"address":"zz","ip":"192.168.0.1"}"

總結

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

以上這篇PHP開發api接口安全驗證的實例講解就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持VeVb武林網。


注:相關教程知識閱讀請移步到PHP教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
懂色av中文一区二区三区天美| 国模gogo一区二区大胆私拍| 欧美一级大片在线免费观看| 亚洲免费伊人电影在线观看av| 国产精品一区二区三区久久久| 亚洲国产精品va在线看黑人| 欧美一级片久久久久久久| 亚洲精品国产电影| 欧美丝袜一区二区三区| 日本一区二区不卡| 亚洲影视九九影院在线观看| 91久久精品美女| 午夜精品国产精品大乳美女| 日韩国产一区三区| 国产综合在线视频| 中文字幕日韩av综合精品| 精品久久久久久久久久久久久| 久久精品电影网站| 亚洲开心激情网| 亚洲天堂网在线观看| 亚洲精品国产综合区久久久久久久| 亚洲精品自拍第一页| 欧美肥臀大乳一区二区免费视频| 亚洲视频精品在线| 国产成人拍精品视频午夜网站| 亚洲免费人成在线视频观看| 亚洲一区二区三区成人在线视频精品| 久久成人精品视频| 亚洲影视中文字幕| 国产精品久久久久久中文字| 欧美极品少妇与黑人| 亚洲高清不卡av| 国产精品视频久久久久| 91av视频在线免费观看| 91av视频在线免费观看| 日韩亚洲第一页| 久久综合色88| 日韩高清电影好看的电视剧电影| 日本午夜精品理论片a级appf发布| 国产亚洲欧洲黄色| 日韩欧美大尺度| 久久久久这里只有精品| xvideos国产精品| 亚洲人成电影在线播放| 国产一区二区色| 精品一区二区亚洲| 美女性感视频久久久| 欧美插天视频在线播放| 国产91色在线|| 尤物99国产成人精品视频| 最新国产成人av网站网址麻豆| 亚洲国产另类 国产精品国产免费| www.日韩免费| 亚洲精品国精品久久99热一| 96精品久久久久中文字幕| 亚洲影院污污.| 国产98色在线| 亚洲国产精彩中文乱码av| 国产精品自产拍在线观看| 美女av一区二区三区| 狠狠躁夜夜躁久久躁别揉| 日韩欧美aⅴ综合网站发布| 亚洲激情在线观看| 久久久久久网址| 日韩电视剧免费观看网站| 亚洲电影成人av99爱色| 日韩av影视综合网| 欧美成人在线免费视频| 欧美第一黄网免费网站| 日韩av中文字幕在线免费观看| 91在线观看免费| 亚洲国产精品小视频| 国产人妖伪娘一区91| 日韩三级成人av网| 欧美另类在线观看| 亚洲精品美女在线| 色偷偷888欧美精品久久久| 日韩精品日韩在线观看| 亚洲第一偷拍网| 欧美裸体xxxx极品少妇| 韩国精品美女www爽爽爽视频| 国产精品永久在线| 欧美国产日本高清在线| 亚洲国产精品va在看黑人| 综合久久五月天| wwwwwwww亚洲| 国产精品中文在线| 日韩av观看网址| 欧美日本在线视频中文字字幕| 另类色图亚洲色图| 少妇高潮久久77777| 国产精品九九久久久久久久| 精品国产一区二区三区久久久狼| 欧美成人午夜激情在线| 一本色道久久88精品综合| 国产欧美一区二区三区久久| 黄色精品在线看| 国产精品久久久久久av福利| 久久国产精品久久精品| 国产精品久久久久影院日本| 久久精品国产99国产精品澳门| 92国产精品视频| 色偷偷亚洲男人天堂| 中文字幕亚洲综合久久| 欧美日韩一区二区免费在线观看| 亚洲综合中文字幕68页| 国产成人精品久久二区二区91| 亚洲国产91精品在线观看| 欧美黑人巨大精品一区二区| 亚洲精品美女久久久| 欧美大片在线看| 国产精品视频在线观看| 欧美成人在线免费| 欧美精品在线观看91| 91九色精品视频| 色综合亚洲精品激情狠狠| 日本欧美中文字幕| 日本高清视频一区| 久久久成人精品视频| 久久久久国产精品免费网站| 日本a级片电影一区二区| 精品久久久久人成| 青草成人免费视频| 日韩国产中文字幕| 中日韩美女免费视频网站在线观看| 亚洲国产日韩精品在线| 国产免费一区二区三区在线观看| 91地址最新发布| 欧美激情综合亚洲一二区| 97视频免费在线观看| 欧美成人免费小视频| 国产综合久久久久久| 亚洲欧美日韩精品久久| 国产色婷婷国产综合在线理论片a| 国产黑人绿帽在线第一区| 久久久精品999| 亚洲欧美日本精品| 国产精品亚发布| 91九色视频导航| 中文字幕亚洲欧美日韩在线不卡| 97精品一区二区视频在线观看| 亚洲一区999| 欧美日韩国产综合视频在线观看中文| 欧美午夜片欧美片在线观看| 国产丝袜精品视频| 这里只有精品在线播放| 亚洲国产成人精品电影| 精品欧美一区二区三区| 久久在线精品视频| 在线观看91久久久久久| 欧洲永久精品大片ww免费漫画| 一本一本久久a久久精品牛牛影视| 日韩精品久久久久| 日本一区二区在线播放| 91精品一区二区| 国产精品视频成人| 久久精品久久久久久| 日韩三级成人av网| 国产一区二区三区久久精品| 亚洲网站在线播放| 日韩欧美在线视频观看| 九九热r在线视频精品| 欧美美最猛性xxxxxx| 国产在线拍揄自揄视频不卡99|