Сервер 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/.htpasswd
require valid-user
<Files .htpasswd>
   deny from all #запрет доступа из браузера к .htpasswd
</Files>
 

Директива 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 (614)

    Apache HTTP-сервер (назван именем группы племён североамериканских индейцев апачей; кроме того, является сокращением от англ. a patchy server; среди русских пользователей общепринято искажённое апач) — свободный веб-сервер. HTTP- сервер или веб-сервер – это программа, которая понимает, что нужно...

  • Защита папки на сервере (315)

    Сервер Apache с помощью настроек (файл .htaccess) позволяет защитить папку от свободного доступа - только через логин и пароль. Зачем это надо:- защитить папки с важными данными от индексации роботами (несмотря на инструкции в robots.txt - поисковые машины индексируют всё, до чего дотянутся)- защитить от...

  • 301 Redirect (241)

    Посмотрим варианты редиректа 301 через файл .htaccess (в корне сайта, включенный модуль mod_rewrite ). Данные варианты будут корректно работать только для простых сайтов на html (т.е. корректно будет редирект для всех страниц сайта), для сайтов на базе CMS надо смотреть документацию (в противном случае...

  • Защита от прямого копирования картинок (183)

    В основном для снижения нагрузки на сервер.Как обычно выглядит ситуация - кто-то зашел на Ваш сайт, ему понравилась статья, далее "copy-paste" и утащил себе на сайт. Как бы не особо жалко, интернет - он свободный. Но - помимо текста были скопированы картинки, у которых адрес (который URL) остался...