用户从web服务器下载php文件?

用户从web服务器下载php文件?,php,Php,假设用户知道php文件的路径,那么用户可以下载该文件吗?有什么措施可以防止这种情况发生吗?只要您的Web服务器配置为解释PHP文件,这些文件就会被解释——这意味着将向用户发送它们的输出,而不是原始内容 当然,如果您有一个脚本,它将文件路径作为参数,并显示该文件的内容。。。您必须确保脚本是安全的,不显示PHP文件的内容;-) 只要您的Web服务器配置为解释PHP文件,这些文件就会被解释——这意味着将向用户发送它们的输出,而不是原始内容 当然,如果您有一个脚本,它将文件路径作为参数,并显示该文件的内

假设用户知道php文件的路径,那么用户可以下载该文件吗?有什么措施可以防止这种情况发生吗?

只要您的Web服务器配置为解释PHP文件,这些文件就会被解释——这意味着将向用户发送它们的输出,而不是原始内容


当然,如果您有一个脚本,它将文件路径作为参数,并显示该文件的内容。。。您必须确保脚本是安全的,不显示PHP文件的内容;-)

只要您的Web服务器配置为解释PHP文件,这些文件就会被解释——这意味着将向用户发送它们的输出,而不是原始内容

当然,如果您有一个脚本,它将文件路径作为参数,并显示该文件的内容。。。您必须确保脚本是安全的,不显示PHP文件的内容;-)

假设您的意思是“访问者”,如果您没有类似于
(或其他类似的漏洞)的脚本,您是安全的

如果“用户”是可以将文件放在服务器上的人(例如,在共享主机环境中),则这取决于服务器。如果每个PHP文件都在同一个用户下运行,并且没有设置严格的open_basedir限制,那么读取其他用户的文件就变得非常容易

即使PHP受到OpenBaseDir限制的“保护”,CGI仍然可以绕过这些限制。因此,建议以其他人无法读取您的文件的方式设置文件权限:
chmod 640
在文件上,
chmod 750
在目录上。

假设您指的是“访问者”,如果您没有像
这样的脚本(或其他类似的漏洞),您是安全的

如果“用户”是可以将文件放在服务器上的人(例如,在共享主机环境中),则这取决于服务器。如果每个PHP文件都在同一个用户下运行,并且没有设置严格的open_basedir限制,那么读取其他用户的文件就变得非常容易


即使PHP受到OpenBaseDir限制的“保护”,CGI仍然可以绕过这些限制。因此,建议将文件权限设置为其他人无法读取您的文件:
chmod 640
在文件上,
chmod 750
在目录上。

他们将能够看到您网站上的文件,下面是我制作的一个脚本,允许用户浏览网站上的文件:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Site</title>
<style type="text/css">
/*CSS Document made by Glenn Dayton 8/14/11*/
body{
 background-color:#999;
}
</style>
</head>

<body>
<h1>.</h1>
<form method="post" action="<?php $_SERVER['REQUEST_URI']; ?>">
<label style="color:#FFF;">Area<input type="text" name="t" /></label>
<input type="submit" name="submit" value="S"/>
<label style="color:#FFF;">Text Area<input type="text" name="view" /></label>
<input type="submit" name="submit" value="V"/>
</form>
<?php
echo getcwd();
chdir('C:');
echo "<br />";
$s = scandir(getcwd().$_POST['t']);
echo "<b style=\"color:blue;\">".getcwd().$_POST['t']."</b><br />";
print_r($s);
$filename = getcwd().$_POST['view'];
echo "<b style=\"color:yellow;\">".$filename."</b><br />";
$file = file_get_contents($filename, "r");
echo "<br /><hr />";
if($file){
$ex = stat($filename);
echo "<ul>";
for($i = 0;$i <= count($ex);$i++){
    echo "<li style=\"color:green;\">$ex[$i]</li>";
}
echo "</ul>";
echo $file;
}else{
echo "<br /><span style=\"color:red;\">Problem</span>";
}
fclose($file);
?>

场地
/*2011年8月14日Glenn Dayton制作的CSS文件*/
身体{
背景色:#999;
}
.

他们将能够看到您网站上的文件,下面是我制作的一个脚本,允许用户浏览网站上的文件:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Site</title>
<style type="text/css">
/*CSS Document made by Glenn Dayton 8/14/11*/
body{
 background-color:#999;
}
</style>
</head>

<body>
<h1>.</h1>
<form method="post" action="<?php $_SERVER['REQUEST_URI']; ?>">
<label style="color:#FFF;">Area<input type="text" name="t" /></label>
<input type="submit" name="submit" value="S"/>
<label style="color:#FFF;">Text Area<input type="text" name="view" /></label>
<input type="submit" name="submit" value="V"/>
</form>
<?php
echo getcwd();
chdir('C:');
echo "<br />";
$s = scandir(getcwd().$_POST['t']);
echo "<b style=\"color:blue;\">".getcwd().$_POST['t']."</b><br />";
print_r($s);
$filename = getcwd().$_POST['view'];
echo "<b style=\"color:yellow;\">".$filename."</b><br />";
$file = file_get_contents($filename, "r");
echo "<br /><hr />";
if($file){
$ex = stat($filename);
echo "<ul>";
for($i = 0;$i <= count($ex);$i++){
    echo "<li style=\"color:green;\">$ex[$i]</li>";
}
echo "</ul>";
echo $file;
}else{
echo "<br /><span style=\"color:red;\">Problem</span>";
}
fclose($file);
?>

场地
/*2011年8月14日Glenn Dayton制作的CSS文件*/
身体{
背景色:#999;
}
.