Windows 2000系统上有运行PHP权限的Apache的虚拟主机安全问题。

myblessu 2003-09-10 04:15:38
本问题在apache版为: http://expert.csdn.net/Expert/topic/2244/2244180.xml?temp=.2409784


我先简单说说我的配置一下:

A、我在C:\WINNT\system32\drivers\etc\hosts文件中添加了如下内容
127.0.0.1 www.aaa.com
127.0.0.1 www.bbb.com

B、我在D盘下建了www.aaa.com及www.bbb.com两个目录,在www.aaa.com下有个PHP文件(1.php)内容如下:
<?php
include "../www.bbb.com/2.php";
echo $file;
?>
在www.bbb.com下有个2.php文件,内容如下:
<?php
$file="2.php";
?>

C、apache的httpd.conf的虚拟主机设置如下
<VirtualHost 127.0.0.1>
ServerAdmin sc@lin.net.cn
DocumentRoot d:/www.aaa.com/
ServerName www.aaa.com
</VirtualHost>
<VirtualHost 127.0.0.1>
ServerAdmin sc@lin.net.cn
DocumentRoot d:/www.bbb.com/
ServerName www.bbb.com
</VirtualHost>

重启动apache后,在IE中看http://www.aaa.com/1.php的输出结果是:2.php
这说明www.aaa.com虚拟主机中的文件已经读取了它目录以外的文件。如何防止这种情况的出现?

我试图将
<VirtualHost 127.0.0.1>
ServerAdmin sc@lin.net.cn
DocumentRoot d:/www.aaa.com/
ServerName www.aaa.com
</VirtualHost>
改为
<VirtualHost 127.0.0.1>
ServerAdmin sc@lin.net.cn
DocumentRoot d:/www.aaa.com/
ServerName www.aaa.com
<Directory d:/www.aaa.com/>
php_admin_value safe_mode 0
php_admin_value open_basedir "/"
</Directory>
</VirtualHost>

可是这样一改。Apache就报错。(the requested operation has failed!)
请问我改怎么做?才能达到每个虚拟主机下的PHP文件只能读取其根文档下(如 d:/www.aaa.com/)的文件,谢谢!
...全文
51 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
luxuezhu 2003-11-05
  • 打赏
  • 举报
回复
学习,接分
myblessu 2003-11-05
  • 打赏
  • 举报
回复
散分,前20名,想要分的快进来吧!
ustcfrank 2003-11-04
  • 打赏
  • 举报
回复
这帖子时间好长,呵呵,mark一下,以后慢慢学习
myblessu 2003-11-04
  • 打赏
  • 举报
回复
终于明白了,查看php文档后,原来是由于安装方式的不同引起的.

唉,我原来在 www.chinaunix.net 上提问,那版主还说windows下不能实现,潶潶.

原来我的php是CGI方式安装的,所以下面的设置错误.

<VirtualHost 127.0.0.1>
ServerAdmin sc@lin.net.cn
DocumentRoot d:/www.aaa.com/
ServerName www.aaa.com
<Directory "d:/www.aaa.com/">
php_admin_value open_basedir d:/www.aaa.com/
</Directory>
</VirtualHost>

当我把php该为模块方式安装时,上面的配置就成功了.而且我想到达的安全目的也到达了.
myblessu 2003-09-11
  • 打赏
  • 举报
回复
feel8(准备早起的鸟) :
  不在安全模式下运行.因为安全模式限制了好多功能。

cpio(就这么简单):
  别人可能不知道有这文件,但可以查该目录下有什么文件。
feel8 2003-09-10
  • 打赏
  • 举报
回复
别人知道有autoexec.bat 文件,可以加入一些命令,添加新的管理员帐号。

别人也可以用目录函数得到上级目录中的所有文件,,
cpio 2003-09-10
  • 打赏
  • 举报
回复
可是别人不知道有../www.bbb.com/2.php这个文件啊


也就用不到了
feel8 2003-09-10
  • 打赏
  • 举报
回复
首页让php工作在安全模式下,
在apache中每个站点设置
php_admin_value open_basedir /usr/local/apache/htdocs
后面为绝对路径,重启web服务器,经测试无法读写本站之外的任何已知或未知文件。

21,886

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧