php.ini

出自IECS Wiki

(重定向自Php.ini)
跳轉到: 導航, 搜尋

關於php伺服器的相關屬性,檔案位於windows目錄下。

目錄

安全性

php.ini 底下有不少參數會影響到程式設計的安全性,global registers 和 error output 等等。


error_reporting

設定 PHP 遇到錯誤時是否將錯誤訊息輸出。PHP 將錯誤訊息分成三種:Notice、Warning、Error,該參數可設定要輸出的錯誤訊息種類,也可設定成不輸出錯誤訊息。Appserv 預設是:

error_reporting  =  E_ALL & ~E_NOTICE

display_errors

設定是否顯示錯誤訊息。一般測試用平台設定為啟用,若是為正式伺服器可以考慮關閉訊息輸出。

register_globals

將 EGPCS 設定成全域變數。若設定為啟用,則 $_POST[*] 會被註冊到 ${*}。如表單中若有變數 $_POST['admin'] = "yes",則程式碼中的變數 $admin 變數會被覆蓋掉。建議關閉該功能。

register_globals = Off

若不是自己的伺服器無法設定此參數,可以使用下面的程式碼將原本已經被全域變數還原:

if(ini_get('register_globals')){
   foreach($GLOBALS as $key=>$val){
      if(!in_array($key,array('GLOBALS','_POST','_GET','_COOKIE','_SERVER','_FILES','wind_in'))){
         ${$key}=;
      }
   }
}

magic_quotes

Magic Quote 功能是 PHP 防止 SQL Injection 的一項功能,但在 6.0 版以後已不在支援。若 magic quote 設定為開啟,則所有 Get、Post 等參數中有引號的部分,會自動被加上反斜線。

magic_quotes_gpc = On

若不確定 magic quote 功能是否開啟,可以使用下面的程式碼自動辨識、轉換引號:

function Add_S(&$array){
	foreach($array as $key=>$value){
		if(!is_array($value)){
			$array[$key]=addslashes($value);
		}else{
			Add_S($array[$key]);
		}
	}
}

if(!get_magic_quotes_gpc()){
	Add_S($_POST);
	Add_S($_GET);
	Add_S($_COOKIE);
}
Add_S($_FILES);


修改上傳上限

upload_max_filesize = 100M
post_max_size = 100M
max_execution_time = 30
max_input_time = 60
memory_limit = 4M