注册 | 登录 | 搜索 
 ›› ›› 『 PHP技术讨论 』›› 如何加强PHP的环境【转】
共有 675 人关注过本帖  
<< 上一主题    下一主题 >>
树形 打印

如何加强PHP的环境【转】

帅哥哟,离线,有人找我吗?

头衔:亲爱的

等级:版主

文章:3044

积分:2279

注册:2008-05-07 18:02:05

楼主  2008-08-10 10:33:14  
  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官方站点


&lt;p&gt;&lt;a href=&quot;http://www.netlanglin.cn&quot;&gt;在线疯玩&lt;/a&gt;&lt;a href=&quot;http://game.langlin.net&quot;&gt;网页游戏&lt;/a&gt;&lt;/p&gt;
动网论坛专用虚拟主机
引用 | 回复 | TOP

匿名用户(220187)

头衔:亲爱的

等级:版主

文章:3044

积分:2279

注册:2008-05-07 18:02:05

沙发  2008-08-10 15:22:11  
动网·网络社区源动力
引用 | 回复 | TOP

1 / 回复数 1/1 1 GO