如何安全地在beta或release環境上調試之basic認證
開啟HTTP的basic認證,然後就可以安全進入開發人員調試問題的測試中心(Test Center)
<?phpnfunction validate()n{n $userName = isset($_SERVER["PHP_AUTH_USER"])?$_SERVER["PHP_AUTH_USER"]:null;n $userPassword = isset($_SERVER["PHP_AUTH_PW"])?$_SERVER["PHP_AUTH_PW"]:null;n $validUsers = [n "kemin"=>"xiaoshu111"n ];n if(isset($validUsers[$userName]) && $validUsers[$userName] == $userPassword) {n //查詢redis緩存n //查詢mysql數據n //清理緩存n //下載文件n } else {n http_response_code(401);//401 HTTP STATUS CODE:Unauthorizedn header(WWW-Authenticate:Basic realm="Test Center");n exit("需要用戶名和密碼才能繼續訪問");n }n}n
打開PHPstorm並創建目錄crypto,然後創建文件demo.php加入上面的代碼,然後再打開終端,輸入命令。
php -S 127.0.0.1n
然後使用Postman測試
基於HTTP的basic認證其實過程很簡單,就是把你的用戶名和密碼通過下面的計算方式:
<?phpn$auth = base64_encode($userName.":".$password);n//然後加入到請求頭中,記住是請求頭,不是響應nheader("Authorization: {$auth}");n
推薦閱讀:
※php之sql注入
※如何評價這篇文章中稱 WordPress 將用 Node.js 來重寫?
※PHP7 出來之後,HHVM 還有什麼優勢嗎?
※國內C源碼PHP框架選擇與評價 Yaf Yar Swoole workerman?
※會PHP會讓人笑瘋嗎?
TAG:PHP |