PHP
downloads | documentation | faq | getting help | mailing lists | reporting bugs | php.net sites | links | conferences | my php.net

search for in the

Χρησιμοποιώντας την PHP από την γραμμή εντολών> <Safe Mode
Last updated: Sun, 25 Nov 2007

view this page in

Functions restricted/disabled by safe mode

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

Safe mode limited functions
Function Limitations
dbmopen() Ελέγχει τα αρχεία ή οι κατάλογοι στους οποίους πρόκειται να ενεργήσετε έχουν το ίδιο UID (ιδιοκτήτη) όπως το script το οποίο εκτελείται.
dbase_open() Ελέγχει τα αρχεία ή οι κατάλογοι στους οποίους πρόκειται να ενεργήσετε έχουν το ίδιο UID (ιδιοκτήτη) όπως το script το οποίο εκτελείται.
filepro() Ελέγχει τα αρχεία ή οι κατάλογοι στους οποίους πρόκειται να ενεργήσετε έχουν το ίδιο UID (ιδιοκτήτη) όπως το script το οποίο εκτελείται.
filepro_rowcount() Ελέγχει τα αρχεία ή οι κατάλογοι στους οποίους πρόκειται να ενεργήσετε έχουν το ίδιο UID (ιδιοκτήτη) όπως το script το οποίο εκτελείται.
filepro_retrieve() Ελέγχει τα αρχεία ή οι κατάλογοι στους οποίους πρόκειται να ενεργήσετε έχουν το ίδιο UID (ιδιοκτήτη) όπως το script το οποίο εκτελείται.
ifx_* sql_safe_mode restrictions, (!= safe mode)
ingres_* sql_safe_mode restrictions, (!= safe mode)
mysql_* sql_safe_mode restrictions, (!= safe mode)
pg_lo_import() Ελέγχει τα αρχεία ή οι κατάλογοι στους οποίους πρόκειται να ενεργήσετε έχουν το ίδιο UID (ιδιοκτήτη) όπως το script το οποίο εκτελείται.
posix_mkfifo() Ελέγχει ο κατάλογος στον οποίο πρόκειται να ενεργήσετε έχει το ίδιο UID (ιδιοκτήτη) όπως το script το οποίο εκτελείται.
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 (ιδιοκτήτη) όπως το script το οποίο εκτελείται.
chdir() Ελέγχει ο κατάλογος στον οποίο πρόκειται να ενεργήσετε έχει το ίδιο UID (ιδιοκτήτη) όπως το script το οποίο εκτελείται.
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. escapeshellcmd() is executed on the argument of this function.
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. escapeshellcmd() is executed on the argument of this function.
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. escapeshellcmd() is executed on the argument of this function.
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. escapeshellcmd() is executed on the argument of this function.
fopen() Ελέγχει ο κατάλογος στον οποίο πρόκειται να ενεργήσετε έχει το ίδιο UID (ιδιοκτήτη) όπως το script το οποίο εκτελείται.
mkdir() Ελέγχει ο κατάλογος στον οποίο πρόκειται να ενεργήσετε έχει το ίδιο UID (ιδιοκτήτη) όπως το script το οποίο εκτελείται.
rmdir() Ελέγχει ο κατάλογος στον οποίο πρόκειται να ενεργήσετε έχει το ίδιο UID (ιδιοκτήτη) όπως το script το οποίο εκτελείται.
rename() Ελέγχει τα αρχεία ή οι κατάλογοι στους οποίους πρόκειται να ενεργήσετε έχουν το ίδιο UID (ιδιοκτήτη) όπως το script το οποίο εκτελείται. Ελέγχει ο κατάλογος στον οποίο πρόκειται να ενεργήσετε έχει το ίδιο UID (ιδιοκτήτη) όπως το script το οποίο εκτελείται.
unlink() Ελέγχει τα αρχεία ή οι κατάλογοι στους οποίους πρόκειται να ενεργήσετε έχουν το ίδιο UID (ιδιοκτήτη) όπως το script το οποίο εκτελείται. Ελέγχει ο κατάλογος στον οποίο πρόκειται να ενεργήσετε έχει το ίδιο UID (ιδιοκτήτη) όπως το script το οποίο εκτελείται.
copy() Ελέγχει τα αρχεία ή οι κατάλογοι στους οποίους πρόκειται να ενεργήσετε έχουν το ίδιο UID (ιδιοκτήτη) όπως το script το οποίο εκτελείται. Ελέγχει ο κατάλογος στον οποίο πρόκειται να ενεργήσετε έχει το ίδιο UID (ιδιοκτήτη) όπως το script το οποίο εκτελείται. (on source and target )
chgrp() Ελέγχει τα αρχεία ή οι κατάλογοι στους οποίους πρόκειται να ενεργήσετε έχουν το ίδιο UID (ιδιοκτήτη) όπως το script το οποίο εκτελείται.
chown() Ελέγχει τα αρχεία ή οι κατάλογοι στους οποίους πρόκειται να ενεργήσετε έχουν το ίδιο UID (ιδιοκτήτη) όπως το script το οποίο εκτελείται.
chmod() Ελέγχει τα αρχεία ή οι κατάλογοι στους οποίους πρόκειται να ενεργήσετε έχουν το ίδιο UID (ιδιοκτήτη) όπως το script το οποίο εκτελείται. In addition, you cannot set the SUID, SGID and sticky bits
touch() Ελέγχει τα αρχεία ή οι κατάλογοι στους οποίους πρόκειται να ενεργήσετε έχουν το ίδιο UID (ιδιοκτήτη) όπως το script το οποίο εκτελείται. Ελέγχει ο κατάλογος στον οποίο πρόκειται να ενεργήσετε έχει το ίδιο UID (ιδιοκτήτη) όπως το script το οποίο εκτελείται.
symlink() Ελέγχει τα αρχεία ή οι κατάλογοι στους οποίους πρόκειται να ενεργήσετε έχουν το ίδιο UID (ιδιοκτήτη) όπως το script το οποίο εκτελείται. Ελέγχει ο κατάλογος στον οποίο πρόκειται να ενεργήσετε έχει το ίδιο UID (ιδιοκτήτη) όπως το script το οποίο εκτελείται. (note: only the target is checked)
link() Ελέγχει τα αρχεία ή οι κατάλογοι στους οποίους πρόκειται να ενεργήσετε έχουν το ίδιο UID (ιδιοκτήτη) όπως το script το οποίο εκτελείται. Ελέγχει ο κατάλογος στον οποίο πρόκειται να ενεργήσετε έχει το ίδιο UID (ιδιοκτήτη) όπως το script το οποίο εκτελείται. (note: only the target is checked)
apache_request_headers() In safe mode, headers beginning with 'authorization' (case-insensitive) will not be returned.
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).
PHP_AUTH variables In safe mode, the variables PHP_AUTH_USER, PHP_AUTH_PW, and AUTH_TYPE are not available in $_SERVER. Regardless, you can still use REMOTE_USER for the USER. (note: only affected since PHP 4.3.0)
highlight_file(), show_source() Ελέγχει τα αρχεία ή οι κατάλογοι στους οποίους πρόκειται να ενεργήσετε έχουν το ίδιο UID (ιδιοκτήτη) όπως το script το οποίο εκτελείται. Ελέγχει ο κατάλογος στον οποίο πρόκειται να ενεργήσετε έχει το ίδιο UID (ιδιοκτήτη) όπως το script το οποίο εκτελείται. (note: only affected since PHP 4.2.1)
parse_ini_file() Ελέγχει τα αρχεία ή οι κατάλογοι στους οποίους πρόκειται να ενεργήσετε έχουν το ίδιο UID (ιδιοκτήτη) όπως το script το οποίο εκτελείται. Ελέγχει ο κατάλογος στον οποίο πρόκειται να ενεργήσετε έχει το ίδιο UID (ιδιοκτήτη) όπως το script το οποίο εκτελείται. (note: only affected since PHP 4.2.1)
set_time_limit() Has no effect when PHP is running in safe mode.
max_execution_time Has no effect when PHP is running in safe mode.
mail() In safe mode, the fifth parameter is disabled. (note: only affected since PHP 4.2.3)
Any function that uses php4/main/fopen_wrappers.c ??



add a note add a note User Contributed Notes
Functions restricted/disabled by safe mode
tschmieder at bitworks dot de
22-Sep-2007 06:04
refers to the previuos posting of

bananarama
15-May-2006 10:11

"all file-handling and -management functions are restricted, just in case someones wondering why they're not listed here.
a script can run these functions on files without errors, if the files were created (are owned) by the same UID, the script was created (is owned) by."

.... or if the directory, in which the file is located, has the same UID as the script, which tries to use a file in that directory...
bananarama
15-May-2006 01:11
all file-handling and -management functions are restricted, just in case someones wondering why they're not listed here.
a script can run these functions on files without errors, if the files were created (are owned) by the same UID, the script was created (is owned) by.

example:
you upload a script, it is owned by UID 720. you upload a picture, it is owned by UID 720. the script creates a thumbnail of the picture. the thumb is owned by UID 30 (the server/apache). this makes it impossible (?) to run a gallery script, which checks for newly uploaded pictures in order to create and display thumbs of them if you want to check, if a thumbnail already exists. the script would be owned by UID 720, the thumb by UID 30.
you could upload a script which creates a file (e.g. from a text file) with .php ending. this script would be owned by UID 30 and could access the thumbs, but it couldnt read the upload pictures.

<?
  $data = fread(fopen("test.txt", "r"), filesize("test.txt"));
  
  $file = "test.php";  
  if (!$file_handle = fopen($file,"a")) { echo "Cannot open file"; } 
  if (!fwrite($file_handle, $data)) { echo "Cannot write to file"; }   
  fclose($file_handle);
 
  chmod("test.php", 0777);
?>
zauker
21-Mar-2006 02:57
The SAFE_MODE handling of glob() needs a checkup for security reasons.

In short - always with SAFE_MODE on:

1) glob() can still fetch all filenames in a directory not owned by the
same UID as the user, if just the first file in the directory (or more
specific, the glob-pattern) happens to be owned by the same user as the
PHP-script.

2a) No warning is raised if glob is used on another owner's directory
and there is no match.

2b) In those cases where SAFE_MODE correctly prohibits glob() from
fetching a list of files, the warning still discloses the first
filename.

Solution: glob() in SAFE_MODE should be restricted in the same way as
opendir() is

see the link http://bugs.php.net/bug.php?id=28932
Jan
23-Oct-2005 02:46
It seems that glob and file_exists functions are also restricted in safe-mode.
lionel at mamane dot lu
31-Mar-2005 05:05
readfile() is probably also limited by safe mode

 
show source | credits | stats | sitemap | contact | advertising | mirror sites