首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >限制PHP只提供某个目录下的文件。

限制PHP只提供某个目录下的文件。
EN

Server Fault用户
提问于 2012-03-19 21:22:48
回答 1查看 1.1K关注 0票数 1

我在PHP和Apache2.4.1 mod_proxy_fcgi上遇到了麻烦。由于mod_proxy_fcgi不能处理Unix,PHP必须侦听本地主机。因此,任何访问服务器的人都可以向PHP发送请求。我无法将PHP限制在我的文档根上,所以有人可以创建一个恶意的PHP文件,确保我的PHP进程能够访问它,并将一个巧尽心思构建的请求发送到PHP侦听的端口。(我已经试过了,成功了。)

我的apache配置中有以下内容:

代码语言:javascript
复制
<VirtualHost *:80>
   ServerName example.org

   DocumentRoot /srv/vhosts/example.org/vhostdata/public/

   <Directory /srv/vhosts/example.org/vhostdata/public/>
          Require all granted
   </Directory>


   <LocationMatch ^(.*\.php)A0gt;
            ProxyPass fcgi://127.0.0.1:6001/srv/vhosts/example.org/vhostdata/public/
            ProxyErrorOverride On
   </LocationMatch>
 </VirtualHost>

我如何使PHP在它接收到的每个请求上占据文档根/srv/vhosts/example.org/vhostdata/public/的优势?我已经在玩chdir指令了,但是它不适合我的需要。

不幸的是,对于我来说,使用chroot不是一种选择,因为我运行的是linux-vserver环境,管理员出于安全原因禁用了mknod

EN

回答 1

Server Fault用户

发布于 2012-03-20 00:27:31

如果您想这样做,在chroot中运行实际上是您唯一的选择。

其他人真的有权限在您的机器上运行代码吗?如果是这样,我建议您切换到支持unix套接字的东西,mod_fastcgi将是一种选择。另一个选项(如果您的应用程序兼容)是切换到nginx,它支持PHP的unix套接字。

如果这只是担心安全性,我建议您只需收紧PHP/Apache运行的权限即可。如果可以防止恶意用户上载文件,则可以防止此漏洞的发生。

票数 0
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/371311

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档