动网论坛,站长建站首选,国内使用量最多的论坛软件 动网论坛官方技术讨论区 站长工具 申请属于您自己的免费论坛
首页 | 新闻资讯 | 网站运营 | 网络编程 | 数据库 | 服务器 | 网页设计 | 图像媒体 | 网络应用 | 搜索优化 | 资源下载 | 动网主机 | DVBOX
    本站内  互联网 ASP论坛  ASP.Net论坛  PHP论坛
  
   PHP → 阅读文章

 加固PHP环境

作者来源: 
阅读 1458 人次 , 2006-3-29 4:06:00 


  php作为apache的模块运行时,apache本身的安全起主导作用,因此如果配置正确的话,php应该是一个十分安全的环境,但是如果php是以cgi方式来运行的话,就没有这么安全了。

  本文中提到的操作,对unix和windows都适用。

  一、作为apache模块来运行

  因为一般说来,apache会以“nobody”或者“www”来运行,所以,php作为模块是十分安全的。

  如果php在虚拟主机环境下,可能会产生用户能浏览其他用户文件的危险。一个简单的脚本如下:

  
  // 假定文档根位于 /usr/local/websites/mydomain

  $location = ../; // 到上一级目录
  $parent = dir($location);

  // 显示当前目录: /usr/local/websites
  while($entry = $parent->read()) {
  echo $entry .
;
  }
  $parent->close();
  ?>

  这样,只要修改$location,用户就可以浏览虚拟主机上所有其他用户的文件了。为了减少这样的危险,我们需要看一下php.ini ,修改其中的safe_mode, doc_root和usr_dir 参数,把用户限制在他自己的虚拟主机环境下:

  safe_mode = on
  doc_root = /usr/local/apache/htdocs
  user_dir = /home/albertxu/htdocs

  二、作为cgi

  把php以cgi方式运行需要十分小心,可能会泄露你不想让人知道的信息。

  第一件事情要注意的就是一定要把执行文件放到文档根目录以外的地方。例如/usr/local/bin,因此所有的cgi文件开头必须带有:

  #!/usr/local/bin/php

  防止用户直接调用cgi的办法是在apache中强迫cgi重定向:

  action php-script /cgi-bin/php.cgi
  addhandler php-script .php

  这会把下面的url

  http://example.com/mywebdir/test.htm

  转换为:

  http://example.com/cgi-bin/php/mywebdir/test.htm

  在以cgi方式编译php时,最好采用下面的选项:

  --enable-force-cgi-redirect

  本文讨论的是有关php的安全问题,详细的安全信息可以参考php老家上手册中关于安全的

  http://www.php.net/manual/en/security.php

  那一章。

 
 收藏本文  打印本文  论坛讨论  关闭窗口
· 上一篇:PHP安装问题
· 下一篇:PHP中的类
· 使用\"函数递归\"实现基于php和MySQL的动态树型菜单
· 一个系统中的新闻增加程序
· 简单的页面缓冲技术
· 用PHP实现POP3邮件的解码
· 关于register_globals设置的问题


关于本站 | 联系我们 | 业务合作 | 客户案例 | 诚聘英才 | 广告合作 | 收藏本站
海口动网先锋网络科技有限公司版权所有
Copyright © 2000 - 2006 Cndw.Com
中华人民共和国电信与信息服务业务经营许可证编号 琼 ICP 020077