Создадим файл .htaccess в папке /uploads/ со следующим содержимым:
<Files ~ "\.(php|php3|php4|pl|cgi)$">
deny from all
</Files>
В первой строке мы запретили доступ к файлам с расширением *.php, *.pl, *.cgi и т.д. Можно добавлять любые другие типы файлов.
Строкой "deny from all" мы запретили доступ к файлам, с расширениями, которые указали выше.
Подобный защитный файл .htaccess универсален. Его можно с успехом применить в папках с правами доступа 777, таких как: /style_images/, /style_emotions/. Подобным .htaccess файлом можно ограничивать доступ к файлам в любой папке на сервере вне зависимости от прав папки и её принадлежности к форуму IPB.
Файл с паролями создается утилитой htpasswd.exe. Если у вас на компьютере установлен сервер Apache, то данная утилита находится в директории с установленным Apache в подкаталоге bin. Используя интерфейс работы с Командной строкой, найдём файл htpasswd.exe в каталоге в веб-сервером Apache. Например, Apache установлен в папку Z:\usr\local\apache, то в Командной строке нужно ввести путь к папке /bin/. Для этого перейдем на диск Z, а затем пишем команду: "cd /usr/local/apache/bin".
Развернуть картинку с примеромТеперь нужно дать команду на создание файла с паролем. Вводим в командную строку следующее: "htpasswd -cm .htpasswd admin". В данном случае "admin" — логин администратора или пользователя, который будет запрашиваться. "-cm" — это ключи для утилиты. Ключ "с" — указывает, что необходимо создать новый файл с паролями. Если файл с таким именем уже существует, то он будет перезаписан. Ключ "m" — определяет шифрование по алгоритму MD5.
В ответ, должен появиться запрос на ввод пароля и его повтор. Если все правильно, то в завершении появится сообщение: "Adding password for user admin". В директории /bin/ появится файл .htpasswd, в котором будет находиться строка с именем пользователя и хеш-кодом его пароля.
Развернуть картинку с примеромФайл с логином и паролем создан. Далее рассмотрим пример файла .htaccess для защиты Админцентра форума.
Составление файла .htaccess.Имея в распоряжении готовый файл .htpasswd с информацией о пользователе, мы можем написать ограничения в файл .htaccess в корневой папке с форумом. Рассмотрим пример по защите файла admin.php — Админцентра форума:
<Files admin.php>
AuthName "Доступ только для администратора."
AuthType Basic
AuthUserFile /home/user/domain.ru/html/.htpasswd
require valid-user
</Files>
В строку, начинающейся с "AuthUserFile" написать абсолютный путь до файла .htpasswd на сервере (относительный работать не будет).
Всё. Теперь, при запросе к файлу http://domain.ru/forum/admin.php (ссылку изменить на свои данные) сервер будет запрашивать авторизацию пользователя, информация (логин и пароль) о котором хранится в файле .htpasswd.
Развернуть картинку с примеромПримечание. На некоторых серверах требуется так же установить защиту на файл .htpasswd. На всякий случай в одной директории с файлом .htpasswd создаем файл .htaccess следующего содержания:
<Files .htpasswd>
deny from all
</Files>
Теперь, даже при возможном наличии потенциальных уязвимостей ваш форум защищен. Пусть эта защита несовершенна, но она проста и удобна в использовании, а так же отпугнёт целый ряд злоумышленников.
Подобные варианты защиты с помощью файлов .htaccess и .htpasswd можно использовать не только к форуму IPB, но и к любым файлам и папкам на сервере. Успехов!