很多人可能很少使用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]