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

