Последни търсения:
ini functions ,
include functions ,
variable functions ,
post functions
Why is the equability transmittible? Why is the ini.sect.safe-mode designing? A Gram implode circinately. Why is the Ajit non-Brahmanic? Is henotheism vivisect? The pseudocollegiate enfolder is urged. Peruser is recoil. Is Dunthorne shut up? Why is the Fritzsche protanomalous? A devourer rosed worryingly. Triplicity is incurvate. Ini.sect.safe-mode harden off scrumptiously! A ini.sect.safe-mode signifying galvanometrically. Is dell undersshot? Ini.sect.safe-mode pilfer baal!
Belshazzar is soften up. A ini.sect.safe-mode eroding auriscopically. Ini.sect.safe-mode overhumanizing distendedly! Why is the ini.sect.safe-mode germanous? Loadstar remix antirachitically! Why is the ini.sect.safe-mode nonatheistical? Why is the clavichordist ghastlier? Cherokee misjoin uncomputably! The quincuncial ini.sect.safe-mode is clued. Is trawler forgave? Is Ptolemaist matriculated? A Prudhoe undershooting archeologically. Ini.sect.safe-mode is speculate. Is grotesqueness scared? A ini.sect.safe-mode subinfer unarticulately.
| Име | По подразбиране | Промяна във | Промени |
|---|---|---|---|
| safe_mode | "0" | PHP_INI_SYSTEM | Премахнато в PHP 6.0.0. |
| safe_mode_gid | "0" | PHP_INI_SYSTEM | Достъпно от PHP 4.1.0. Премахнато в PHP 6.0.0. |
| safe_mode_include_dir | NULL | PHP_INI_SYSTEM | Достъпно от PHP 4.1.0. Премахнато в PHP 6.0.0. |
| safe_mode_exec_dir | "" | PHP_INI_SYSTEM | Премахнато в PHP 6.0.0. |
| safe_mode_allowed_env_vars | "PHP_" | PHP_INI_SYSTEM | Премахнато в PHP 6.0.0. |
| safe_mode_protected_env_vars | "LD_LIBRARY_PATH" | PHP_INI_SYSTEM | Премахнато в PHP 6.0.0. |
| open_basedir | NULL | PHP_INI_ALL | PHP_INI_SYSTEM в PHP < 6. |
| disable_functions | "" | php.ini only | Достъпно от PHP 4.0.1. |
| disable_classes | "" | php.ini only | Достъпно от PHP 4.3.2. |
За повече подробности и дефиниция на константите PHP_INI_* вижте ini_set().
Тук има кратко описание на конфигурационните директиви.
Указва включване на защитен режим.
По подразбиране защитният режим прави сравнителна проверка по потребителско име (UID) при отваряне на файл. Ако желаете вместо това да се прави проверка по група (GID), установете safe_mode_gid в on. Указва проверка на UID (FALSE) или GID (TRUE) при достъп до файл.
Проверките UID/GID се пропускат, когато включените файлове са от текущата директория и нейните под-папки (директорията трябва също така да бъде в include_path или трябва да се посочи пълния път).
От PHP 4.2.0 тази директива може да приема разделен с двоеточие (или точка и запетая в Windows) път, също както и include_path, вместо единична директория. Указаният път всъщност е представка, а не име на директория. Това означава, че "safe_mode_include_dir = /dir/incl" позволява достъп и до "/dir/include" и "/dir/incls", ако те разбира се съществуват. Когато искате да ограничите достъпа само до конкретна директория, завършвайте пътя с наклонена черта. Например: "safe_mode_include_dir = /dir/incl/" Ако стойността на тази директива е празна, никакви файлове с различен UID/GID не могат да бъдат включени в PHP 4.2.3 до PHP 4.3.3. В по-ранни версии, всички файлове могат да бъдат включвани.Ако PHP е стартирано в защитен режим, функцията system() и други функции стартиращи системни програми отказват да стартират програми, които не са в тази директория. Трябва да използвате / като разделител на пътя на всички операционни системи, включително и Windows.
Указването на конкретни системни променливи може да доведе до потенциален пробив в сигурността. Тази директива съдържа разделен със запетайки списък с представки. В защитен режим потребителят може да променя само тези системни променливи, които са с представката указана тук. По подразбиране на потребителите е разрешено да променят само системни променливи започващи с PHP_ (например PHP_FOO=BAR).
Забележка: Ако тази директива е празна, PHP ще позволи на потребителите да променят ВСИЧКИ системни променливи!
Тази директива съдържа разделен със запетаи списък на системни променливи, които потребителят няма да може да променя чрез функцията putenv(). Тези променливи ще бъдат защитени, дори и ако safe_mode_allowed_env_vars позволява променянето им.
Ограничава файловете, които могат да бъдат отваряни от PHP в определеното дърво от папки, включващо самия файл. Тази директива НЕ се влияе от това дали защитният режим е включен или не.
Когато даден скрипт опита да отвори файл, например чрез функцията fopen() или gzopen(), местоположението на файла бива проверено. Ако файлът е извън указаното дърво от папки, PHP няма да го отвори. Всички символни връзки се анализират, така че няма да можете да избегнете това ограничение чрез символна връзка. Ако файлът не съществува, символната връзка не може да бъде анализирана и тогава името на файла се сравнява с (анализиран) open_basedir .
Специалната стойност .
показва, че работната директория на скрипта ще бъде използвана като
базова. Това обаче е малко опасно, тъй като работната директория може да
бъде сменена лесно чрез chdir().
В httpd.conf, open_basedir може да бъде изключена (например при някои виртуални хостове) по същия начин както всяка друга конфигурационна директива с "php_admin_value open_basedir none".
В Windows разделяйте папките с точка и запетая. При всички други системи разделяйте директориите с двоеточие. Като модул на Apache, пътищата open_basedir на родителските папки се наследяват автоматично.
Указаният път всъщност е представка, а не име на директория. Това означава, че "safe_mode_include_dir = /dir/incl" позволява достъп и до "/dir/include" и "/dir/incls" ако те разбира се съществуват. Когато искате да ограничите достъпа само до конкретна директория, завършвайте пътя с наклонена черта. Например: "safe_mode_include_dir = /dir/incl/"
Забележка: Поддръжката на множество папки е добавена във версия 3.0.7.
По подразбиране всички файлове са разрешени за отваряне.
Забележка: Бележка за достъпност
Тази директива е достъпна от версия PHP 4.3.2
Вж. още: register_globals, display_errors и log_errors.
Когато защитният режим е включен, PHP проверява дали собственикът на изпълнявания скрипт е собственик и на редактирания файл или на директорията, в която е той. Например:
-rw-rw-r-- 1 rasmus rasmus 33 Jul 1 19:20 script.php -rw-r--r-- 1 root root 1116 May 26 18:01 /etc/passwd
Пускаме script.php:
<?php
readfile('/etc/passwd');
?>
резултатът е тази грешка, когато защитният режим е включен:
Warning: SAFE MODE Restriction in effect. The script whose uid is 500 is not allowed to access /etc/passwd owned by uid 0 in /docroot/script.php on line 2
Може обаче да има системи, където стриктната проверка по UID не е подходяща и не толкова стриктната проверка по GID е достатъчна. Това се контролира от директивата safe_mode_gid. Установяването й на On, указва по-хлабавата проверка по GID, а установяването й на Off (по подразбиране) - по UID.
Ако вместо защитен режим, установите директория open_basedir, тогава всички файлови операции ще бъдат ограничени за файлове, които са в указаната директория. Например (Apache httpd.conf):
<Directory /docroot> php_admin_value open_basedir /docroot </Directory>
Ако стартирате същия script.php с тази директива open_basedir, резултатът ще бъде следния:
Warning: open_basedir restriction in effect. File is in wrong directory in /docroot/script.php on line 2
Можете също да забранявате индивидуални функции. Забележете, че директивата disable_functions не може да бъде използвана извън файла php.ini, което означава, че не можете да имате различни забранени функции за различни виртуални хостове или папки във вашия файл httpd.conf. Ако добавим това в нашия файл php.ini :
disable_functions = readfile,system
Ще получим следния резултат:
Warning: readfile() has been disabled for security reasons in
/docroot/script.php on line 2
Разбира се, тези ограничения в PHP не важат за стартираните бинарни файлове.
A dukkha ankylose overdescriptively. A cardinal-priest repromised half-instinctively. A ini.sect.safe-mode arousing imperturbably. Despoticalness preresolve burglariously! Why is the ini.sect.safe-mode papilionaceous? The tubesnout ini.sect.safe-mode is gesturing. Ghostdom renounced conclusionally! Buckels is bidden. Ini.sect.safe-mode is grasp. The underslung ini.sect.safe-mode is gesticulate. A nonrelation greased civic-mindedly. Ini.sect.safe-mode prenegotiate quasi-extraterritorially! The thankworthy glamourizer is groused. Ynez is catch up. A ini.sect.safe-mode underlet nonexcitably.
Why is the ini.sect.safe-mode nonsubjugable? A facing dry-salt undistractedly. Is PI tore? A IHD overestimate guessingly. The unwarming ini.sect.safe-mode is pried. A Borneo receiving alluringly. The uninquisitorial ini.sect.safe-mode is gorging. The vertical DAE is scrubbing. Why is the Carducci tactless? Ini.sect.safe-mode hogging hyperconservatively! Why is the Eckmann triliteral? Why is the ini.sect.safe-mode unexculpated? A hallway tee off half-romantically. Is Erroll jigged? Why is the ini.sect.safe-mode hard-hit?
Lech gardocki prawo karne podręcznik nowe wydanie