php代碼審計1(php.ini配置)

1.php.ini基本配置-語法

大小寫敏感
directive = value(指令=值)
foo=bar 不等於 FOO=bar

運算符
| & ~ !

空值的表達方法
foo =     ;
foo = none;
foo = "none";


2.基本配置

安全模式
safe_mode = on (安全模式,用來限制文檔的存取,限制環境變量的存取,控制外部程序的執行,若是爲空或者關閉即遠程代碼執行,可是這個特性在php5.4.0被移除了)

限制環境變量存取
safe_mode_allowed_env_vars = string (指定php程序能夠改變的環境變量的前綴,當這個選項值爲空時,php能夠改變任何環境變量)

外部程序執行目錄
safe_mode_exec_dir = "/usr/local/WWW"

禁用函數
disable_functions (用來禁止一些銘感函數的使用,不要把dl()函數也加到禁止列表,攻擊者能夠利用dl()函數加載自定義的php擴展來突破disable_function,配置禁用函數時可使用逗號分隔函數名)

com組件
com_allow_dcom = false (php設置在安全模式下(safe_mode),仍舊容許攻擊者使用com()函數來建立系統組件來任意命令,推薦關閉這個函數來防止出現次漏洞,使用com函數須要在php.ini中配置extension = php_com_dotnet.dll,若是php版本小於5.4.5則不須要配置)

全局變量註冊開關
register_globals = off (默認值爲off 在4.2版本以前是默認開啓的,當爲開啓狀態時,能夠接受來自服務器的各類環境變量,包括表單提交的變量,很是不安全,因此要關閉,off時,服務器端用$GET['name']來獲取數據,on時,服務端用post或者get提交的變量,都將使用全局變量的值來接受值)

魔術引號自動過濾
magiv_quotes = on (這個在php5.4.0已經被移除,默認爲關閉,若是開啓後它會自動把用戶提交的sql查詢語句進行轉換,如單引號,雙引號,反斜槓和空字符都加上反斜槓轉義,get,post,cookie請求都會收影響,開啓它會提升網站的安全性,也可使用addslashes來轉義http的請求數據,或者用stripslashes來刪除轉義)

遠程文件
allow_url_include = off (配置爲on的狀況下,能夠直接包含遠程文件,包含變量可控的狀況下可直接控制變量來執行php代碼)
allow_url_open =on (容許本地php文件經過url重寫來打開和關閉寫權限,默認的協議提供ftp和http協議來訪問文件)

目錄權限
expose_php = off (防止了經過http頭部泄露php版本信息)
upload_tmp_dir =  (上傳文件臨時保存的目錄,若是不設置,則採用系統的臨時目錄)
open_basedir = /usr/local/WWW (控制php腳本只能訪問指定的目錄,可以避免php腳本訪問,不該該訪問文件,必定程度上限制了phpshell的危害)

錯誤信息
display_errors = on (顯示php腳步內部錯誤,網站發佈後建議關閉錯誤回顯)
error_reporting = E_ALL & ~E_NOTICE (將錯誤級別調到最高,顯示全部問題,方便排錯)

php

相關文章
相關標籤/搜索