问题描述
|
亲爱的人们,
用于访问特定PHP页面的密码保护似乎存在问题:
@嵌入此测试代码时,会很好地看到一个弹出式身份验证对话框。
@如果我填写字段并按Enter,则它不会在页面上显示密码/登录!
@它再次向我展示带有空字段的身份验证对话框...一次又一次
@经过3次尝试或说未经授权访问...
可能会发生什么?非常感谢您的建议!
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>\";
}
Ive Apache 2.0x Fedora和PHP 5.2.3,在apache htacces或其他任何方式中均未设置密码
解决方法
mod1ѭ最多可用于mod_php设置。对于CGI或FastCGI设置,您将必须手动解组
HTTP_AUTHORIZATION
标头。更糟糕的是,出于安全原因,通常不存在该问题。 (使用PHP进行基本身份验证会产生无限循环)
您将必须使用phpinfo()检查可以使用的变体。然后从http://www.php.net/manual/zh-cn/features.http-auth.php#94349中的注释中应用更复杂的示例之一