PHP安全編程之php.ini配置

1.register_globals=On
<?php//ex1.php 
if(check_admin()) 
$is_admin=true; 
if($is_admin) 
do_something(); 
?> 
這一段代碼沒有將$is_admin事先初始化爲Flase,若是register_globals爲On,那麼咱們直接提交http://www.sectop.com/ex1.php?is_admin=true,就能夠繞過check_admin()的驗證
當register_globals=On時,咱們提交http://www.sectop.com/ex2.php?_SESSION[username]=admin
 
2.magic_quotes
用來讓php程序的輸入信息自動轉義,全部的單引號(「'」),雙引號(「"」),反斜槓(「\」)和空字符(NULL),都自動被加上反斜槓進行轉義magic_quotes_gpc=On用來設置magicquotes爲On,它會影響HTTP請求的數據(GET、POST、Cookies)程序員也可使用addslashes來轉義提交的HTTP 請求數據,或者用stripslashes 來刪除轉義。
magic_quotes_gpc = On
對post、get請求、cookie的參數加轉義
addslashes($name) 函數添加的反斜槓,stripslashes($name)刪除反斜槓
http://www.test.com/index.php?is_admin=true&name="\sas"
獲得$name = '\"\\sas\"';
$name = stripslashes($name); $name = '"\sas"';
 
3.safe_mode
安全模式,PHP用來限制文檔的存取、限制環境變量的存取,控制外部程序的執行。啓用
安全模式必須設置php.ini中的safe_mode=On
 
a、限制文件存取
safe_mode_include_dir="/path1:/path2:/path3"
不一樣的文件夾用冒號隔開
 
b、限制環境變量的存取
safe_mode_allowed_env_vars=string
指定PHP程序能夠改變的環境變量的前綴,如:safe_mode_allowed_env_vars=PHP_ ,當這個選項的值爲空時,那麼php能夠改變任何環境變量
safe_mode_protected_env_vars=string用來指定php程序不可改變的環境變量的前綴。
 
c、限制外部程序的執行
safe_mode_exec_dir=string
此選項指定的文件夾路徑影響system、exec、popen、passthru,不影響shell_exec和「``」。
disable_functions=string
不一樣的函數名稱用逗號隔開,此選項不受安全模式影響。
相關文章
相關標籤/搜索