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

О проекте

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

MySQL

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

Хостинг

Другое








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

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

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

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

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

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

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

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

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

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

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

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



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





ГЛАВА 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