Сервер Apache с помощью настроек (файл .htaccess) позволяет защитить папку от свободного доступа – только через логин и пароль.
Зачем это надо:
– защитить папки с важными данными от индексации роботами (несмотря на инструкции в robots.txt – поисковые машины индексируют всё, до чего дотянутся)
– защитить от вредителей, которые пытаются попасть в административную панель управления CMS (папка administrator для Joomla и папка wp-admin для WordPress)
Примечание: для 1С Битрикс данный вариант использовать нельзя, т.к. в папке administrator находятся модули, необходимые для работы остального сайта. Если на админку Битрикс сделать пароль, то большая часть сайта перестанет работать.
После установки защиты на папку у нас будет фактически двухуровневая аутентификация такого вида:
1-й этап – сервер запрашивает разрешение на доступ к папке administrator (внутри которой находится index.php, который запускает административную панель Joomla)
2-й этап – стандартный запрос на вход в админку Joomla
Как сделать такую красоту?
А) Внутри защищаемой папки создаем файл .htaccess следующего вида (обычный текстовый файл формата ANSI)
AuthType Basic
AuthName “That’s protected Area!”
AuthUserFile /home/uXXXXX/www/site.ru/.htpasswd
require valid-user
<Files .htpasswd>
deny from all #запрет доступа из браузера к .htpasswd
</Files>
Или как вариант (если допускает Ваш сервер) – положить файл с паролем на уровень площадки на сервере – туда вообще браузеру доступа нет.
AuthType Basic
AuthName “That’s protected Area!”
AuthUserFile /home/uXXXXX/.htpasswd
require valid-user
Директива AuthType. Тип используемой аутентификации. Для базовой аутентификации эта директива должна иметь значение: Basic
В директиве AuthName указываем сообщение для пользователя, в нашем случае “That’s protected Area!”. Сообщение можно указать другое.
Для желающих потроллить хакеров можно сделать:
– логин вида superuser1917
– сообщение вида “Requires the Administrator password!” (требуется пароль Administrator)
Пусть думают, что основной логин Administrator и к нему перебирают пароль :)
В директиве AuthUserFile указываем абсолютный путь к файлу с логинами/паролями. Это пример для хостинга MasterHost, для другого хостинга путь будет другой.
“Путь /home/uXXXXX/.htpasswd обозначает полный путь к файлу паролей на диске нашего сервера. Если, например, вы поместите файл .htpasswd (в нем будут пароли) в домашний каталог, куда вы попадаете зайдя на сервер по FTP, то путь к этому файлу будет иметь вид /home/uXXXXX/.htpasswd, где uXXXXX — наименование вашей виртуальной площадки (например, u12345).
Если вы создаете файл .htaccess на своем компьютере, а не сразу на сервере при помощи текстового редактора, обратите внимание на то, что .htaccess должен передаваться по FTP строго в текстовом (ASCII) режиме.”
Директива Require
Одно или несколько требований, которые должны быть выполнены для получения доступа к закрытой области.
require valid-user — разрешен доступ всем прошедшим проверку
require user admin alex mango — разрешен доступ только посетителям с именами admin, alex, mango. Естественно, они должны пройти аутентификацию.
require group admins – разрешен доступ всем пользователям из группы admins
После создания такого файла и перемещения его на сервер – при попытке войти в админку будет появляться запрос логина и пароля для входа в папку. Система нас не пустит, т.к. у нас собственно пока отсутствует файл с логином и паролем.
Создаем в указанном месте (или на локальном ПК с передачей его по FTP) файл .htpasswd. Файл состоит из строк, каждая из которых соответствует паре логин:пароль. Логин отделяется от хеша двоеточием. Это обычный текстовый файл ANSI, каждая строка которого представляет из себя
login:password
Метод авторизации с использованием такого файла носит название базового (англ. basic authentication). Некоторые другие веб-серверы, например, nginx, также могут работать с этим файлом.
Название начинается с точки, так как точка в Unix-подобных операционных системах указывает на атрибут «скрытый». Кроме того, Apache не отдаёт по запросу файлы, имя которых начинается с точки, что позволяет размещать файл паролей внутри директорий, доступных анонимным пользователям.
Логин и пароль необходимо придумать самостоятельно.
Пароль может быть в виде:
– собственно пароль без шифрования
– хеш пароля MD5 (модифицированный в проекте Apache)
– хеш пароля MD5 (с “солью” в виде логина пользователя)
– системная функция crypt
– хеш пароля SHA (последняя актуальная версия SHA-3 от 2015 г., для версий SHA-0, SHA-1 и SHA-2 найден вектор атаки)
Какой именно вариант – зависит от настроек хостинга (точнее настроек Apache на хостинге), нужно узнавать в техподдержке. Обычно MD5.
Получить хеш пароля MD5 можно сделать несколькими путями:
– использовать онлайн сервисы для создания хеша https://htmlweb.ru/service/htpasswd.php
– использовать встроенную программу сервера Apach – htpasswd
– использовать ее аналог для Windows – htpasswd.exe
Синтаксис использования программы htpasswd.exe в среде Windows (консоль)
htpasswd.exe -mc .htpasswd user1
создаем новый файл паролей htpasswd.exe, пароль и его подтверждение будут запрошены интерактивно
htpasswd.exe -m .htpasswd user2
добавляем пользователя user2 в существующий файл паролей htpasswd.exe, запросив пароль интерактивно
В результате будет получен файл с содержимом вида
user1:hash_pass1
user2:hash_pass2
После окончания заведения всех логинов файл нужно загрузить на сервер.
Почитать в разделе: ФАЙЛ .htaccess
- Всего статей в разделе: 3
- Показано статей в списке: 2
- Сортировка: название по алфавиту
301 Redirect

(Читать полностью...)
Защита от прямого копирования картинок

(Читать полностью...)