作者:LAMP小白 点击:2450 发布日期:2012-10-19 21:33:00 返回列表
www-authenticate是一种简单的用户身份认证技术。
很多验证都采用这种验证方式,尤其在嵌入式领域中。
优点:方便
缺点:这种认证方式在传输过程中采用的用户名密码加密方式为BASE-64,其解码过程非常简单,如果被嗅探密码几乎是透明的.
服务器收到请求后,首先会解析发送来的数据中是否包含有:
Authorization: Basic XXXXXXXXXXXXX=这种格式的数据
如果没有这样的header数据
那么服务器会发送HTTP信息头WWW-Authenticate: Basic realm=mio_quot;mio_quot;到浏览器
要求浏览器发送合法的用户名和密码到服务端,为了进一步告知浏览器,这个页面需要认证 我们最还还是接着发送一个401错误
Header(mio_quot;HTTP/1.0 401 Unauthorizedmio_quot;);
用户输入用户名:admin 密码:admin后,浏览器将以下面这种格式将数据发送给服务器端:Authorization: Basic YWRtaW46YWRtaW4=
Authorization: Basic为www-authenticate认证的标准HTTP信息头
YWRtaW46YWRtaW4=是经BASE-64加密后的用户名和密码
经解密后的格式为 admin:admin
这时我们就可以用过PHP的全局变量来使用它们了
$_SERVER[mio_#39;PHP_AUTH_USERmio_#39;];
$_SERVER[mio_#39;PHP_AUTH_PWmio_#39;];
路由器这些玩意都是这么做的
一个小演示
if(!isset($_SERVER['PHP_AUTH_USER']) mio_amp;mio_amp; !isset($_SERVER['PHP_AUTH_PW'])){ Header("WWW-Authenticate: Basic realm="USER LOGIN""); Header("HTTP/1.0 401 Unauthorized"); } else { echo $_SERVER['PHP_AUTH_USER']; echo $_SERVER['PHP_AUTH_PW']; }
上一篇:滑动窗特效的一个兼容性问题 下一篇:快递查询API