【发布时间】:2012-10-17 19:39:19
【问题描述】:
我有一种情况,我正在打开基于 $_SERVER['REMOTE_USER'] 变量的文件。我不认为这是可以欺骗的,但只想确认一下。我不想让自己容易受到任意文件的读取:
<?
$user = $_SERVER['REMOTE_USER'];
$fp = fopen("./$user.png","r");
?>
【问题讨论】:
我有一种情况,我正在打开基于 $_SERVER['REMOTE_USER'] 变量的文件。我不认为这是可以欺骗的,但只想确认一下。我不想让自己容易受到任意文件的读取:
<?
$user = $_SERVER['REMOTE_USER'];
$fp = fopen("./$user.png","r");
?>
【问题讨论】:
是的,该用户名是远程用户指定的。
您还需要验证密码。如果密码是由您的服务器而非您的应用程序验证的,那么您可能没问题。
【讨论】:
$_SERVER 中的任何内容都来自服务器,但 REMOTE_USER 密钥中显示的内容直接来自为身份验证提供的客户端信息。
PHP_AUTH_USER 通常用于此目的,但我至少见过一种情况,服务器会传递所有内容并让应用程序处理它。