php401验证

很多人可能很少使用php的验证,很多使用我们可以这样来使用这个验证:[php]
define(‘ADMIN_USERNAME’,’uname’); // Admin Username
define(‘ADMIN_PASSWORD’,’passwd’); // Admin Password
if (!isset($_SERVER[‘PHP_AUTH_USER’]) || !isset($_SERVER[‘PHP_AUTH_PW’]) ||
$_SERVER[‘PHP_AUTH_USER’] != ADMIN_USERNAME ||$_SERVER[‘PHP_AUTH_PW’] != ADMIN_PASSWORD) {
Header("WWW-Authenticate: Basic realm=\"Memcache Login\"");
Header("HTTP/1.0 401 Unauthorized");

echo <<<EOB
<html><body>
<h1>Rejected!</h1>
<big>Wrong Username or Password!</big>
</body></html>
EOB;
exit;
}[/php]
这里我们通过发送header信息来进行验证,其中这个$_SERVER[‘PHP_AUTH_USER’]东西如果不可用打开php.ini中的Register Globals,将其设为on,在php5以后默认设为off,因为打开其实不安全。官网给出一个例子:[shell]
<?php
// 当用户合法的时候,赋值 $authorized = true
if (authenticated_user()) {
$authorized = true;
}

// 由于并没有事先把 $authorized 初始化为 false,
// 当 register_globals 打开时,可能通过GET auth.php?authorized=1 来定义该变量值
// 所以任何人都可以绕过身份验证
if ($authorized) {
include "/highly/sensitive/data.php";
}
?>[/shell]

Avatar photo

About Blackford

这是个最好的时代,这是个最坏的时代,这是个充满希望的春天,这是个令人绝望的冬天,我们前面什么都有,我们前面什么都没有。梦想,让我们一次次的走远,又一次次的回头,一个关于人生的梦想还在不断奔跑,带着喜悦和疼痛,不过一切才刚刚开始,并且直到今天也远远没有结束
This entry was posted in PHP服务器脚本 and tagged , . Bookmark the permalink.

发表评论

电子邮件地址不会被公开。 必填项已用*标注