查看: 3004|回复: 7
打印 上一主题 下一主题

[分享] 今晚,發現de PHP...

[复制链接]
跳转到指定楼层
1#
发表于 2009-6-6 07:48:05 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
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://bmwsky.com/mywebdir/test.htm
  轉換爲:
  http://bmwsky.com/cgi-bin/php/mywebdir/test.htm
  在以CGI方式編譯PHP時,最好采用下面的選項:
  --enable-force-cgi-redirect
分享到:  新浪微博 QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 顶 反对反对
8#
发表于 2009-6-7 15:12:51 | 只看该作者
7#
发表于 2009-6-6 20:19:02 | 只看该作者
  MAI哥一下是翻译专家,一下又成技术人才了~~~真是上通天文下知地理,无一不知晓啊!!! 真是P服P服啊~~!!
6#
发表于 2009-6-6 20:07:40 | 只看该作者
二哥 我完全看不懂 哈哈
5#
发表于 2009-6-6 11:11:35 | 只看该作者
mai 哥哥可真是才子,现在才发现
4#
发表于 2009-6-6 10:13:38 | 只看该作者
3#
发表于 2009-6-6 10:12:20 | 只看该作者
请mai同学翻译成中文版,谢谢
2#
发表于 2009-6-6 10:08:00 | 只看该作者
阿MAI同学是程序开发级别的高手啊....失敬,失敬哦!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|BMWSKY宝马会 ( 粤ICP备13075095号-3

GMT+8, 2024-9-24 05:22 , Processed in 0.027435 second(s), 21 queries .

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表