Защита доступа к админке с помощью файлов .htaccess и .htpasswd

Ноя 01 2017 Published by under Безопасность, Сайтостроение

Подавляющее большинство веб-серверов управляется HTTP-сервером Apache. Этот сервер позволяет создать надежную защиту доступа к файлам и папкам посредством авторизации используя свой встроенный защитный механизм. От вас потребуется минимум телодвижений, а результатом будет достаточно высокий уровень защищенности, например, админки. Поскольку этот механизм встроен в сервер Apache, абсолютно нет разницы, директории какой CMS мы будем защищать.

«Ближке к телу» — как говорил де Мопассан. Если ваш хостинг поддерживает cPanel, то у вас нет проблем с защитой доступа. cPanel автоматически создает файлы .htaccess и .htpasswd если вы пожелаете запаролить вход в директорию.

У вас нет cPanel? Ok, будем ставить эти файлы вручную. Тут, конечно, следовало бы добавить сухой теории о работе файла .htaccess. Но ничего этого я описывать не буду. Хотите знать больше — тут вам гугл в помощь. Перейдем сразу к практике.

Для начала проберим работу файла .htaccess на вашем хостинге. Создаем файл .htaccess (первым символ — точка, расширения нет). прописываем в нем следующий код:

AuthType Basic
AuthName admin
require valid-user

Затем заливаем на сайт в ту директорию, которую хотите защитить. В нашем случае это админка. Заходим в панель администрирования и нас просят авторизоваться
Все в порядке, хостинг поддерживает работу с файлами .htaccess и мы можем продолжать. если нет — стучитесь в суппорт вашего хостинга, либо испольуйте другую защиту.

Правим наш файл

AuthName "?"
AuthType Basic
AuthUserFile /home/pass/.htpasswd
require valid-user

AuthType — Тип используемой аутентификации. Basic — базовая аутентификация, Digest — аутентификация с зашифрованным паролем (MD5)
AuthName — Имя области действия аутентификации. Например «админка»
AuthUserFile — абсолютный путь от корня сервера к файлу с паролями (.htpasswd).
Require — Одно или несколько требований, которые должны быть выполнены для получения доступа к закрытой области. valid-user — доступ будет получен при совпадении пары логин-пароль для любого пользователя прописаного в файле паролей

Содаем файл .htpasswd и пишем в нем пару/пары логин-пароль

igor:qeqrqr
roman:1234567

Заливаем файл в директорию , прописанную в файле .htaccess, как путь до файла с паролями. Лучше, если это будет непубличный каталог, доступ, к которому будете иметь только вы. Если вы все сделали правильно, то при входе в админку у вас появится дополнительная форма авторизации:
Если же вы решите оставить файл в публичном каталоге сайта, то необходимо запретить просмотр директории, в которой находится наш файл. Для нее создаем .htaccess и пропишем:

Order Deny, Allow
Deny from all

можно запретить просмотр файла паролей:

Deny from all

Таким коварным способом мы можем запретить просмотр любых файлов. А если нам надо запаролить доступ к файлу пишем:

AuthName "Users zone"
 AuthType Basic
 AuthUserFile /home/pass/.htpasswd

Или группу файлов по регулярному выражению (запрещаем просмотр txt, pdf):

AuthName "txt и pdf"
AuthType Basic
AuthUserFile /pass/.htpasswd
require valid-user

No responses yet

Добавить комментарий

28 - столько SQL запросов к базе.
0,142454 - за столько сгенерировалась страница.