פרק 23. Safe Mode

תוכן העניינים :

טבלה 23-1 . Configuration directives controlling safe mode are :

Directive Default value
Off
0
1





Running this script.php



results in this error when safe mode is enabled:













This is supported by means of the safe_mode_gid This is supported by means of the safe_mode_gid switch .




If you run the same script.php with this open_basedir setting then this is the result:












Then we get this output:





Functions restricted/disabled by safe mode

This is a still probably incomplete and possibly incorrect listing of the functions limited by safe mode .

טבלה 23-2 . Safe mode limited functions

Function Limitations
dbmopen( ) בודק האם הקבצים\ספריות שאתה מתכוון לבצע עליהם פעולות , הם בעלי הרשאת משתמש ( UID ) הזהה לזו של התוכנית המורצת .
dbase_open( ) בודק האם הקבצים\ספריות שאתה מתכוון לבצע עליהם פעולות , הם בעלי הרשאת משתמש ( UID ) הזהה לזו של התוכנית המורצת .
filepro( ) בודק האם הקבצים\ספריות שאתה מתכוון לבצע עליהם פעולות , הם בעלי הרשאת משתמש ( UID ) הזהה לזו של התוכנית המורצת .
filepro_rowcount( ) בודק האם הקבצים\ספריות שאתה מתכוון לבצע עליהם פעולות , הם בעלי הרשאת משתמש ( UID ) הזהה לזו של התוכנית המורצת .
filepro_retrieve( ) בודק האם הקבצים\ספריות שאתה מתכוון לבצע עליהם פעולות , הם בעלי הרשאת משתמש ( UID ) הזהה לזו של התוכנית המורצת .
ifx_*( ) sql_safe_mode restrictions , ( != safe mode )
ingres_*( ) sql_safe_mode restrictions , ( != safe mode )
mysql_*( ) sql_safe_mode restrictions , ( != safe mode )
pg_loimport( ) בודק האם הקבצים\ספריות שאתה מתכוון לבצע עליהם פעולות , הם בעלי הרשאת משתמש ( UID ) הזהה לזו של התוכנית המורצת .
posix_mkfifo( ) בודק האם הספרייה שבה אתה רוצה לבצע פעולה , היא בעלת הרשאת משתמש ( UID ) הזהה לזו של התוכנית המורצת .
putenv( ) Obeys the safe_mode_protected_env_vars and safe_mode_allowed_env_vars ini-directives . See also the documentation on putenv( )
move_uploaded_file( ) בודק האם הקבצים\ספריות שאתה מתכוון לבצע עליהם פעולות , הם בעלי הרשאת משתמש ( UID ) הזהה לזו של התוכנית המורצת .
chdir( ) בודק האם הספרייה שבה אתה רוצה לבצע פעולה , היא בעלת הרשאת משתמש ( UID ) הזהה לזו של התוכנית המורצת .
dl( ) פונקציה זו אינה פעילה במצב safe-mode
backtick operator פונקציה זו אינה פעילה במצב safe-mode
shell_exec( ) (functional equivalent of backticks ) פונקציה זו אינה פעילה במצב safe-mode
exec( ) You can only execute executables within the safe_mode_exec_dir . For practical reasons it ' s currently not allowed to have . . components in the path to the executable .
system( ) You can only execute executables within the safe_mode_exec_dir . For practical reasons it ' s currently not allowed to have . . components in the path to the executable .
passthru( ) You can only execute executables within the safe_mode_exec_dir . For practical reasons it ' s currently not allowed to have . . components in the path to the executable .
popen( ) You can only execute executables within the safe_mode_exec_dir . For practical reasons it ' s currently not allowed to have . . components in the path to the executable .
mkdir( ) בודק האם הספרייה שבה אתה רוצה לבצע פעולה , היא בעלת הרשאת משתמש ( UID ) הזהה לזו של התוכנית המורצת .
rmdir( ) בודק האם הקבצים\ספריות שאתה מתכוון לבצע עליהם פעולות , הם בעלי הרשאת משתמש ( UID ) הזהה לזו של התוכנית המורצת .
rename( ) בודק האם הקבצים\ספריות שאתה מתכוון לבצע עליהם פעולות , הם בעלי הרשאת משתמש ( UID ) הזהה לזו של התוכנית המורצת . בודק האם הספרייה שבה אתה רוצה לבצע פעולה , היא בעלת הרשאת משתמש (UID ) הזהה לזו של התוכנית המורצת .
unlink( ) בודק האם הקבצים\ספריות שאתה מתכוון לבצע עליהם פעולות , הם בעלי הרשאת משתמש ( UID ) הזהה לזו של התוכנית המורצת . בודק האם הספרייה שבה אתה רוצה לבצע פעולה , היא בעלת הרשאת משתמש (UID ) הזהה לזו של התוכנית המורצת .
copy( ) בודק האם הקבצים\ספריות שאתה מתכוון לבצע עליהם פעולות , הם בעלי הרשאת משתמש ( UID ) הזהה לזו של התוכנית המורצת . בודק האם הספרייה שבה אתה רוצה לבצע פעולה , היא בעלת הרשאת משתמש (UID ) הזהה לזו של התוכנית המורצת . (on source and target )
chgrp( ) בודק האם הקבצים\ספריות שאתה מתכוון לבצע עליהם פעולות , הם בעלי הרשאת משתמש ( UID ) הזהה לזו של התוכנית המורצת .
chown( ) בודק האם הקבצים\ספריות שאתה מתכוון לבצע עליהם פעולות , הם בעלי הרשאת משתמש ( UID ) הזהה לזו של התוכנית המורצת .
chmod( ) בודק האם הקבצים\ספריות שאתה מתכוון לבצע עליהם פעולות , הם בעלי הרשאת משתמש ( UID ) הזהה לזו של התוכנית המורצת . In addition , you cannot set the SUID , SGID and sticky bits
touch( ) בודק האם הקבצים\ספריות שאתה מתכוון לבצע עליהם פעולות , הם בעלי הרשאת משתמש ( UID ) הזהה לזו של התוכנית המורצת . בודק האם הספרייה שבה אתה רוצה לבצע פעולה , היא בעלת הרשאת משתמש (UID ) הזהה לזו של התוכנית המורצת .
symlink( ) בודק האם הקבצים\ספריות שאתה מתכוון לבצע עליהם פעולות , הם בעלי הרשאת משתמש ( UID ) הזהה לזו של התוכנית המורצת . בודק האם הספרייה שבה אתה רוצה לבצע פעולה , היא בעלת הרשאת משתמש (UID ) הזהה לזו של התוכנית המורצת . (note : only the target is checked )
link( ) בודק האם הקבצים\ספריות שאתה מתכוון לבצע עליהם פעולות , הם בעלי הרשאת משתמש ( UID ) הזהה לזו של התוכנית המורצת . בודק האם הספרייה שבה אתה רוצה לבצע פעולה , היא בעלת הרשאת משתמש (UID ) הזהה לזו של התוכנית המורצת . (note : only the target is checked )
getallheaders( ) In safe mode , headers beginning with ' authorization ' (case-insensitive ) will not be returned . Warning : this is broken with the aol-server implementation of getallheaders( ) !
header( ) In safe mode , the uid of the script is added to the realm part of the WWW-Authenticate header if you set this header ( used for HTTP Authentication ) .
highlight_file( ) , show_source( ) בודק האם הקבצים\ספריות שאתה מתכוון לבצע עליהם פעולות , הם בעלי הרשאת משתמש ( UID ) הזהה לזו של התוכנית המורצת . בודק האם הספרייה שבה אתה רוצה לבצע פעולה , היא בעלת הרשאת משתמש (UID ) הזהה לזו של התוכנית המורצת . (note : only affected since PHP 4.2.1 )
parse_ini_file( ) בודק האם הקבצים\ספריות שאתה מתכוון לבצע עליהם פעולות , הם בעלי הרשאת משתמש ( UID ) הזהה לזו של התוכנית המורצת . בודק האם הספרייה שבה אתה רוצה לבצע פעולה , היא בעלת הרשאת משתמש (UID ) הזהה לזו של התוכנית המורצת . (note : only affected since PHP 4.2.1 )
Any function that uses php4 / main / fopen_wrappers.c ? ?