Книги:
Раскрутка
Веб-дизайн
Работа
Комп. сети
Протоколы
Файловый обмен
Мобильники
Блоги
Для начинающих
Программы
Право, законы
Студенту
|
Как повысись безопасность вашего конфигурационного файла?
Как повысить безопасность вашего конфигурационного файла, который содержит
логины и пароли для доступа к базам данных MySql? Ккак предотвратить нарушение конфиденциальности?
Этот конфигурационный файл с секретными данными ( хост, имя пользователя, пароль) для подключения к базе данных MySQL
не должен попадаться на глаза посторонним.
Он обычно расположен
все папки public_html, вне корневого каталога документов, чтобы запретить доступ к нему веб-сервером.
Правильно настроенный веб-сервер апачи имеет право доступ на чтение только к папке public_html.
Файл включается в код php сценария
инструкциями include( ) и require() с указанием полного (абсолютного) пути:
include ("/home/polzovatel/secret/mysqlaccess.php");
Предположим, что не включен безопасный режим (safe_mode = off ) и сценарий, принадлежащий пользователю
Мэри (которая является пользователем Вашего сервера),
вызывает инструкцию include( ), которая пытается подключить секретный php файл, принадлежащий Вам и
ее вызов НЕ завершится неудачей.
То есть в сценарий постороннего пользователя поступят Ваши важные и секретные данные.
Чтобы предотвратить попадание Вашей особо ценной информации в чужие PHP скрипты,
можно в начале Вашего секретного скрипта включить блок кода,
который проверяет, что скрипт запустился именно с вашего хоста (аккаунта на сервере),
и если этот блок кода определит, что скрипт выполнился не на Вашем сайте, то выполняется
его завершение.
Пример:
$prvr1=$_SERVER["DOCUMENT_ROOT"]; // DOCUMENT_ROOT - /home/polzovatel/www/public_html
$prvr2=$_SERVER["HTTP_HOST"]; // HTTP_HOST - www.you_host_name.ru
if( !stristr($prvr1,"polzovatel") || !stristr($prvr2,"you_host_name") ) die();
Безопасный режим - safe_mode
При включении безопасного режима (safe_mode) ограничивается использование отдельных
потенциально опасных возможностей РНР. Для включения или выключения безопасного режима
параметру safe_mode присваивается значение on или off. Механизм ограничения основан на
сравнении идентификатора пользователя (UID) выполняющегося сценария с идентификатором
пользователя того файла, к которому этот сценарий пытается обратиться. Если идентификаторы
совпадают, функция выполняется; в противном случае попытка завершается неудачей.
При включении безопасного режима действуют следующие ограничения:
- Функции ввода/вывода ( fopen ( ), filе( ) и include ( ) ) работают только с файлами,
принадлежащими владельцу сценария.
- Новые файлы создаются только в каталогах, принадлежащих владельцу сценария.
- Запуск внешних сценариев функциями popen( ), system( ) или ехес( ) разрешается в том случае,
если запускаемый сценарий находится в каталоге, определяемом параметром safe_mode_exec_dir.
- Аутентификация HTTP становится более жесткой, поскольку в ней также учитывается
UID аутентифицирующего сценария.
- Имя пользователя, использованное при подключении к серверу MySQL,
должно совпадать с именем владельца файла, вызывающего mysql_connect( ).
Функции, выполнение которых ограничивается в безопасном режиме:
chgrp include require chmod link rmdir chown passthru symlink exec popen system fopen readfile unlink
file rename.
|
|
|
|