程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> 加固PHP環境(轉)

加固PHP環境(轉)

編輯:關於PHP編程

作者:Albert
  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
  那一章。


  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved