PHP 的 HTTP 认证机制

测试账号 2021-01-08 14:26 802阅读 0赞

1036583-20170327105014248-2124857363.jpg

PHP 的 HTTP 认证机制仅在 PHP 以 Apache 模块方式运行时才有效,因此该功能不适用于 CGI 版本。在 Apache 模块的 PHP 脚本中,可以用 header()函数来向客户端浏览器发送”Authentication Required”信息,使其弹出一个用户名/密码输入窗口。当用户输入用户名和密码后,包含有 URL 的 PHP 脚本将会加上预定义变量PHP_AUTH_USER,PHP_AUTH_PW 和 AUTH_TYPE被再次调用,这三个变量分别被设定为用户名,密码和认证类型。预定义变量保存在 $_SERVER 或者 $HTTP_SERVER_VARS 数组中。支持”Basic”和”Digest”(自 PHP 5.1.0 起)认证方法。请参阅 header() 函数以获取更多信息。

eg:

  1. $_SERVER['PHP_AUTH_USER'] = "test";
  2. $_SERVER['PHP_AUTH_PW'] = "123456";
  3. //*********************************
  4. //用户账号
  5. $login = 'test';
  6. $pass = '1234567';
  7. //*********************************
  8. if(($_SERVER['PHP_AUTH_PW']!= $pass || $_SERVER['PHP_AUTH_USER'] != $login)|| !$_SERVER['PHP_AUTH_USER'])
  9. {
  10. header('WWW-Authenticate: Basic realm="Test auth"');
  11. header('HTTP/1.0 401 Unauthorized');
  12. echo 'Auth failed';
  13. exit;
  14. } else{
  15. echo "Auth success";
  16. }
  17. 具体业务具体对待.....

发表评论

表情:
评论列表 (有 0 条评论,802人围观)

还没有评论,来说两句吧...

相关阅读

    相关 https双向认证

    一、概念 根证书:是生成服务器证书和客户端证书的基础,是信任的源头,也可以叫自签发证书,即CA证书。 服务器证书:由根证书签发,并发送给客户,让客户安装在浏览器里的证书

    相关 HTTP basic认证

            最近在学习tomcat时,发现当我们点击manager按钮去管理tomcat下面的应用时,弹出用户名密码的登陆弹窗。后面儿仔细了解发现原来是基于http 的ba

    相关 HTTPS通信中身份认证机制

    当你访问一个网站时,有没有想过这个问题:如何保证我的访问能直达目标网站,而没有被中间人攻击和劫持。想要解决这个问题,就得依靠HTTPS中的身份认证机制。 HTTPS的基本概念