$_SERVER["PHP_AUTH_USER"]使用應用

發布時間:2020-01-08 12:24:39 來源:青鋒建站 作者:青鋒建站
  通用 HTTP 身份驗證框架可以被多個驗證方案使用。不同的驗證方案會在安全強度以及在客戶端或服務器端軟件中可獲得的難易程度上有所不同。HTTP 提供一個用于權限控制和認證的通用框架。最常用的HTTP認證方案是HTTP Basic authentication,$_SERVER["PHP_AUTH_USER"]主要應用在http基本驗證中。以下是青鋒建站給大家分享的PHP的HTTP 認證機制與http基本驗證的安全性分析。

http基本驗證方案

  "Basic" HTTP 驗證方案是在 RFC 7617中規定的,在該方案中,使用用戶的 ID/密碼作為憑證信息,并且使用 base64 算法進行編碼。
基本驗證方案的安全性
  由于用戶 ID 與密碼是是以明文的形式在網絡中進行傳輸的(盡管采用了 base64 編碼,但是 base64 算法是可逆的),所以基本驗證方案并不安全;掘炞C方案應與 HTTPS / TLS 協議搭配使用。假如沒有這些安全方面的增強,那么基本驗證方案不應該被來用保護敏感或者極具價值的信息。
使用Apache限制訪問和基本身份驗證
  要對Apache服務器上的目錄進行密碼保護, 你需要一個 .htaccess 和 a .htpasswd 文件. 該 .htaccess 文件格式通?雌饋硐襁@樣:
AuthType Basic
AuthName "Access to the staging site"
AuthUserFile /path/to/.htpasswd
Require valid-user
  該 .htaccess 文件引用一個 .htpasswd 文件,其中每行用冒號(“:”)分隔的用戶名和密碼. 你不能看到真實的密碼因為它們是 encrypted (在這個例子中是使用了 MD5). 你可以命名.htpasswd 文件 為你所喜歡的名字, 但是應該保證這個文件不被其他人訪問. (Apache通常配置阻止訪問 .ht* 類的文件).
aladdin:$apr1$ZjTqBB3f$IF9gdYAGlMrs2fuINjHsz.
user2:$apr1$O04r.y2H$/vEkesPhVInBByJUkXitA/

PHP 的 HTTP 認證機制

  PHP 的 HTTP 認證機制僅在 PHP 以 Apache 模塊方式運行時才有效,因此該功能不適用于 CGI 版本。在 Apache 模塊的 PHP 腳本中,可以用 header() 函數來向客戶端瀏覽器發送“Authentication Required”信息,使其彈出一個用戶名/密碼輸入窗口。當用戶輸入用戶名和密碼后,包含有 URL 的 PHP 腳本將會再次和預定義變量 PHP_AUTH_USER、PHP_AUTH_PW 和 AUTH_TYPE 一起被調用,這三個變量分別被設定為用戶名,密碼和認證類型。預定義變量保存在 $_SERVER 或者 $HTTP_SERVER_VARS 數組中。系統僅支持“基本的”認證。
<?php
if (!isset($_SERVER['PHP_AUTH_USER'])) {
    header('WWW-Authenticate: Basic realm="My Realm"');
    header('HTTP/1.0 401 Unauthorized');
    echo 'Text to send if user hits Cancel button';
    exit;
  } else {
    echo "<p>Hello {$_SERVER['PHP_AUTH_USER']}.</p>";
    echo "<p>You entered {$_SERVER['PHP_AUTH_PW']} as your password.</p>";
 }
  以上就是青鋒建站給大家分享的PHP的HTTP 認證機制與http基本驗證的安全性分析。青鋒建站,提供專業的高品質網站制作服務,包括專業網站建設,SEO,網絡營銷,PHP開發,php網站建設知名品牌,全國接單,為企業構建強有力的營銷平臺!
分享到:

Copyright © 2016-2026 青鋒建站 版權所有

新疆35选7大星彩票