П О Р Т А Л                            
С Е Т Е В Ы Х                          
П Р О Е К Т О В                        
  
Поиск по сайту:
                                                 
Главная

О проекте

Web-мастеру
     HTML & JavaScript
     SSI
     Perl
     PHP
     XML & XSLT
     Unix Shell

MySQL

Безопасность

Хостинг

Другое








Самое читаемое:

Учебник PHP - "Для Чайника".
Просмотров 175020 раз(а).

Иллюстрированный самоучитель по созданию сайтов.
Просмотров 71984 раз(а).

Учебник HTML.
Просмотров 72071 раз(а).

Руководство по PHP5.
Просмотров 42683 раз(а).

Хостинг через призму DNS.
Просмотров 49171 раз(а).

Подборка текстов стандартных документов.
Просмотров 43113 раз(а).

Учебник PHP - Самоучитель
Просмотров 49450 раз(а).

Документация на MySQL (учебник & справочное руководство)
Просмотров 49697 раз(а).

Внешние атаки...
Просмотров 40243 раз(а).

Учебник PHP.
Просмотров 35272 раз(а).

SSI в примерах.
Просмотров 26553 раз(а).



 
 
| Добавить в избранное | Сделать стартовой | Помощь




ГЛАВА 16. Безопасность.

Проблемы конфигурации PHP

safe_mode

При включении безопасного режима (safe_mode) ограничивается использование некоторых потенциально опасных возможностей РНР. Для включения или выключения безопасного режима параметру safe_mode присваивается значение on или off. Механизм ограничения основан на сравнении идентификатора пользователя (UID) выполняющегося сценария с идентификатором пользователя того файла, к которому этот сценарий пытается обратиться. Если идентификаторы совпадают, функция выполняется; в противном случае попытка завершается неудачей.

Безопасный режим не может использоваться в том случае, если РНР откомпилирован в виде модуля Apache. Дело в том, что при работе РНР в режиме модуля Apache все сценарии РНР работают под тем же идентификатором, что и Apache, что не позволяет различать владельцев разных сценариев. За дополнительной информацией обращайтесь к разделу «Безопасный режим и работа РНР в режиме модуля Apache».

В частности, при включении безопасного режима действуют следующие ограничения:

  • Функции ввода/вывода (в частности, fopen(), filе() и include()) работают только с файлами, принадлежащими владельцу сценария. Предположим, в безопасном режиме сценарий, принадлежащий пользователю Мэри, вызывает функцию fopen(). Если функция попытается открыть файл, принадлежащий Джону, ее вызов завершится неудачей. Но если Мэри принадлежит как сценарий, вызывающий fopen(), так и открываемый файл, все будет нормально.
  • Запуск внешних сценариев функциями popen(), system() или ехес() разрешается лишь в том случае, если запускаемый сценарий находится в каталоге, определяемом параметром safe_mode_exec_dir (см. далее).
  •  Новые файлы создаются только в каталогах, принадлежащих владельцу сценария.
  • Аутентификация HTTP становится более жесткой, поскольку в ней также учитывается UID аутентифицирующего сценария. Механизм аутентификации пользователей рассматривается в одном из разделов этой главы.
  • Имя пользователя, использованное при подключении к серверу MySQL, должно совпадать с именем владельца файла, вызывающего mysql_connect().

В табл. 16.1 приведен полный список функций, на которые распространяется безопасный режим.

Таблица 16.1. Функции, выполнение которых ограничивается в безопасном режиме

chgrp include require
chmod link  rmdir
chown  passthru  symlink
exec popen system
fopen readfile unlink
file rename

К сожалению, документация РНР по безопасному режиму не обновлялась с версии 2.0, хотя функциональность безопасного режима практически не изменилась. Документация находится по адресу http://www.php.net/manual/phpfi2.htmll.

Назад | Содержание раздела | Общее Содержание | Вперед



Если Вы не нашли что искали, то рекомендую воспользоваться поиском по сайту:
 





Copyright © 2005-2016 Project.Net.Ru