Содержимое файла .htaccess
представлено в листинге 8.1.
AuthName «Admin Zone»
AuthType Basic
AuthUserFile /путь/.htpasswd
require valid-user
Глава 8. Проблема безопасности и защита PHP-Nuke
101
Вместо файла odmin.php вам нужно указать имя вашего файла
администрирования. Вместо значения Admin zone вы можете указать все что угодно —
данная строка будет просто отображена в окне, выводимым браузером.
Директива AuthUserFile задает путь к файлу с паролями. Он может
выглядеть так: home /домен/html. Путь нужно уточнить у вашего хостинг-
провайдера.
Примечание
Поскольку у вас будет собственный файл .htaccess, его листинг не
приводится на компакт-диске.
Теперь нужно создать файл .htpasswd. Это можно сделать с помощью
программы htpasswd. Вот поэтому вам и нужен доступ к консоли Web-сервера:
чтобы ввести данную команду. Параметры программы htpasswd приведены в
табл. 8.1.
Таблица 8.1. Параметры программы htpasswd
Параметр
-с
-п
-т
-d
-р
-s
-Ь
Описание
Создает новый файл паролей
Выводит содержимое файла на стандартный вывод (обычно
экран монитора)
Для шифрования паролей использует алгоритм MD5
(используется по умолчанию)
Для шифрования паролей использует алгоритм CRYPT (менее
стойкий, чем MD5)
Пароли записываются без шифрования, открытым текстом (не
рекомендуется!) I
Для шифрования паролей использует алгоритм SHA (менее
стойкий, чем MD5)
Обычно программа запрашивает пароль, опция -ь позволяет
указать пароль в командной строке. По сути, бесполезная опция I
Для создания нового файла паролей введите команду:
htpasswd -с .htpasswd pupkin
102
Часть II. PHP-Nuke
Здесь .htpasswd— имя файла паролей, pupkin— имя пользователя-
администратора. Постарайтесь, чтобы имена и пароли в файле .htpasswd не
совпадали с именами пользователей и их паролями в базе данных PHP-Nuke,
иначе от нашей защиты будет мало толку.
Программа создаст пустой .htpasswd, запросит вас пароль пользователя pup-
kin, затем зашифрует его и запишет в файл .htpasswd.
Если вы хотите добавить в файл паролей информацию еще об одном
пользователе, то не нужно указывать параметр -с, просто укажите имя файла
паролей и имя пользователя:
htpasswd .htpasswd vasya
Затем нужно скопировать файл .htpasswd в каталог, который вы указали в
файле .htaccess. Желательно хранить файл паролей за пределами каталога
документов (DocumentRoot) вашего сервера. Если вы путаетесь с
терминологией и вообще не имеете представление о настройке Web-сервера, обратитесь
в службу технической поддержки хостинг-провайдера. Обычно за
дополнительную плату специалисты из техподдержки выполнят все необходимые
настройки.
Теперь осталось проверить настройки. Откройте браузер и попытайтесь
зайти в панель управления сайтом. Если вы увидели окно, подобное
изображенному на рис. 8.1, и при вводе имени пользователя и пароля из файла .htpasswd
вы получаете доступ к панели управления, то вы все сделали правильно. Если
же что-то работает не так, установить причину поможет табл. 8.2.
Таблица 8.2. Поиск причины неправильной работы аутентификации
Симптом
Не появляется окно
аутентификации
Окно аутентификации
появилось, но аутентификация
не проходит успешно, даже
при вводе правильного
имени пользователя и пароля
Вероятная причина
Ошибка в файле .htaccess (см. листинг 8.1).
Убедитесь, что данный файл не содержит
ошибок и что вы поместили его в нужный каталог
Ошибка может быть или в файле .htaccess, или
в файле паролей. Первым делом убедитесь, что
в файле .htaccess указан правильный путь к
файлу паролей. Если путь указан правильный,
тогда нужно заново создать файл паролей —
при его создании вами была допущена какая-то
ошибка
Глава 8. Проблема безопасности и защита PHP-Nuke
103
8.5. Изменение префикса таблиц
Успех SQL-инъекции (довольно популярный и очень эффективный в случае с
pHP-Nuke) зависит от того, будет ли злоумышленник знать, как называются
таблицы PHP-Nuke.
5th Фев 2011
|
Теги:
|