Как настроить запрет доступа к файлу, каталогу и сайту через htaccess

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

Кому нужен запрет доступа и как им пользоваться

Стоит учитывать, что файл htaccess позволяет не только делать запрет доступа сразу ко всему сайту, но и создавать белые и черные списки пользователей. То есть вы сможете, к примеру, закрыть доступ для некоторых IP. Точно так же вы сможете снять запрет только для выбранных вами IP, создав тем самым белый список пользователей. Но зачем вообще использовать эту функцию?

Порой обстоятельства так складываются, что к сайту нельзя никого подпускать. К примеру, когда на нем ведутся какие-то важные техработы. В этот момент вы можете заблокировать доступ для каждого пользователя, кроме своего IP. Тогда посетители не будут присутствовать на ресурсе, когда он в нестабильном состоянии. Кроме того, используя черный список пользователей, вы сможете запретить доступ к сайту для IP недоброжелательных посетителей, которые спамят, флудят, ругаются и плохо обзываются о вашем портале.

Таким образом, вы сможете закрыть свой сайт от нежеланных гостей, создав подобие бан-листа. И во всем этом вам поможет файл htaccess с его незаменимыми директивами.

Как запретить доступ к файлу, каталогу, сайту через htaccess

Для управления уровнем доступа к сайту, файлу или папке вам необходимо будет использовать директивы Deny и Allow. Первая директива нужна, чтобы запретить доступ, а вторая — чтобы разрешить. Во многом эти директивы зависят от того, куда вы поместите файл htaccess. Если он будет расположен в корневом каталоге, то запрет или разрешение будет действовать на весь сайт целиком. Если же вы загрузите htaccess в какую-то папку, то опции Deny и Allow будут действовать на каталог, в котором находится, а также на внутренние папки. Именно таким образом и блокируют доступ к определенным директориям и разделам сайта.

Синтаксис директив запрета и разрешения предельно прост. Начинать опцию следует со строки Order Deny, Allow. Она обозначает активацию функций Deny и Allow. А в следующих строках вы должны указать конкретно, какие условия доступа вы планируете установить. Так, чтобы закрыть доступ для всех, вам нужно прописать всего две строки:

Order Deny,Allow — открытие функции.
Deny from all — указание правила.

Нижняя строка говорит: «Запретить (deny) для (from) всех (all)». Точно таким же образом вы можете вместо Deny прописать Allow для активации противоположной опции. Но поскольку эта опция активирована по умолчанию, нет смысла ее дополнительно указывать в htaccess. Allow from скорее используют для того, чтобы указывать исключения, то есть чтобы сформировать белый список пользователей.

Чтобы открыть доступ только для некоторых IP, вам нужно сначала закрыть сайт или каталог для всех остальных. Вот пример создания белого списка для двух адресов IP:

Order Deny,Allow
Deny from all
Allow from 136.68.81.3, 135.67.82.1 — IP писать через запятую.

По аналогии с написанной функцией вы сможете блокировать только определенные адреса IP. Только для этого вам нужно будет сначала прописать разрешение для всех через Allow from all, а потом указывать через Deny from IP-адреса, либо названия хостов, для которых доступ строго воспрещен.

Для ограничения прав на файл через закрытие доступа, вам нужно создать отдельный документ htaccess, и поместить его в директорию, где содержится файл. Директива запрета для файла выглядит примерно так же, как опция ограничения доступа для сайта или каталога. Разница только в том, что для ограничения файла вам понадобится специальный тег . В открывающем теге необходимо указать название объекта, доступ к которому следует ограничить. Вот пример запрета для всех пользователей к файлу passvd.txt:

— тег с именем файла
Order Deny,Allow — открытие опции
Deny from all — правило директивы
— закрытие тега

Теперь вам осталось поместить htaccess в каталог, где содержится файл passvd.txt, и никто не сможет добраться к нему через сайт. Как показывает практика, обычно доступ к файлу блокируют не полностью, а указывают исключения для доверенных IP-адресов. К примеру, вы сможете указать ограничение для всех, кроме своего IP, чтобы вы смогли потом скачать файл с паролями. Вот пример такого ограничения:

Order Deny,Allow
Deny from all
Allow from 144.66.55.2

Если в каталоге содержится не один файл, который вам нужно защитить, а несколько, то вы можете прописать сразу много директив для каждого отдельного объекта. Но это неудобно. Кроме того, много опций в htaccess нагружают сервер, потому куда разумнее активировать другую блокировку — запрет доступа по типу файлов в каталоге, а не по их наименованию. Вам нужно будет использовать точно такую же конструкцию директив, только вместо имени файла необходимо через символ «|» указывать расширения, которые пользователи не смогут скачать с данной папки. Вот пример тег запрета для загрузки картинок определенного формата:

Чтобы сделать запрет для других форматов, вам нужно будет лишь сменить названия расширений в скобках. Сделать это несложно, как и указать белый или черный список пользователей. Сама конструкция в кавычках всегда остается одинаковой.

Учтите, что многие пользователи используют не статический IP, а динамический, потому указывать один адрес в запрете глупо. Куда разумнее писать в запрет диапазон IP-адресов. Для этого найдите Whois-сервис и определите CIDR IP-адреса, а затем укажите его в запрете. Тогда даже при временной смене адреса, пользователь не сможет зайти на портал.

Htaccess запрет доступа к папке

подписывайтесь на новости о рекламе и дизайне:

Защита файлов

Наверное, всем пользователям интернета попадались одинаковые статьи на различных сайтах. Очень часто бывает, что эти статьи попросту сворованы с других ресурсов. Поисковые системы стараются бороться с дублированными страницами, но выбор ими первоисточника не всегда оказывается верным. И это является серьезной проблемой для копирайтеров и веб-мастеров, так как на написание качественного контента, порой, уходит большое количество сил и времени, и очень неприятно обзавестись штрафными санкциями поисковиков за то, что кто-то скопировал контент с Вашего сайта. А зачастую, вместе с текстом воруют так же и изображения. Причем, многие воры, чтобы не перегружать свой сервер, не скачивают изображение с чужих сайтов, а просто ссылаются на файлы, находящиеся на сайте-первоисточнике. Вставка ссылки на файл, находящийся на другом сайте называется хотлинком (hotlink). Помимо ссылок на изображения этого могут быть так же ссылки и на другие файлы, например, доступные для скачивания. Такие хотлинки не только крайне неприятны для автора контента. Они так же перегружает сервер первоисточника.

Защитить файлы от хотлинка при помощи файла .htaccess можно добавив в него две строчки:

RewriteCond % !^$
RewriteCond % !^http(s)?://(www.)?ваш_сайт.ru.*$ [NC]
RewriteRule .(jpe?g|bmp|gif|png|css|zip|pdf|txt|doc)$ — [NC,F,L]

В скобочках через символ «|» указаны расширения файлов, доступ к которым будет запрещен всем, за исключением сервера и пользователей сайта ваш_сайт.ru

Чтобы открыть доступ к файлам с этим расширением для пользователей поисковых систем необходимо исключить на них запрет так же, как на ваш_сайт.ru:

RewriteCond % !^$
RewriteCond % !^http(s)?://(www.)?ваш_сайт.ru [NC]
RewriteCond % !^http(s)?://(www.)?yandex.ru [NC]
RewriteCond % !^http(s)?://(www.)?yahoo. [NC]
RewriteCond % !^http(s)?://(www.)?google. [NC]
RewriteCond % !^http(s)?://(www.)?bing. [NC]
RewriteRule .(jpe?g|bmp|gif|png|css|zip|pdf|txt|doc)$ — [NC,F,L]

Защита паролем

При помощи файла дополнительной конфигурации .htacces возможно установить пароль на директорию сайта, конкретный файл или группу файлов с одинаковым расширением. Чтобы установить пароль на директорию, в .htaccess необходимо написать:

AuthName «What do you want?«
AuthType Basic
AuthUserFile /home/сервер/ваш_сайт.ru/pass/.htpasswd
require valid-user

Файл .htaccess, содержащий эти строки необходимо поместить в директорию, доступ к которой мы хотим закрыть. При попытке пользователя зайти на соответствующий раздел сайта сервер отдаст код статуса 401 (требуется авторизация) и выведет окно с полями для ввода имени пользователя и пароля и сообщением «What do you want?», указанным в директиве «AuthName» (допускаются только латинские символы и цифры).

Имена пользователей и пароли хранятся в файле .htpasswd. Путь к этому файлу задается в директиве «AuthUserFile».

Важно: путь к файлу .htpasswd указывается абсолютный, от корневого каталога сервера.

Чтобы узнать путь к .htpasswd, который необходимо указать в .htaccess, можно создать файл php, содержащий:

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

Установить пароль на конкретный файл можно следующим образом:

&lt Files file.txt &gt
AuthName «It’s not for all»
AuthType Basic
AuthUserFile /home/сервер/ваш_сайт.ru/pass/.htpasswd

Пароль на группу файлов:

&lt Files «.(sql)$» &gt
AuthName » It’s not for all «
AuthType Basic
AuthUserFile /home/сервер/ваш_сайт.ru/pass/.htpasswd

В данном случае все файлы, имеющие расширение .sql будут доступны только по паролю.

Статья полезна? Поделитесь с друзьями:

Обработка файлов и папок в htaccess: запрет, правила

Запрет доступа к файлу

Приведём пример запрета на доступ к файлу: Теперь если сделать запрос к файлу secret.php, который находится в корневой папке сайта, то вернётся статус 403 (доступ запрещён) и будет показано сообщение: Вместо отдельного файла «secret.php» можно поставить папку «/secret/». Тогда получится запрет на доступ к папке и всем вложенным в неё папкам/файлам.

Попробуем изменить сообщение о запрете доступа. Для этого поставим опцию ErrorDocument, которая указывает, какой документ необходимо выдавать на какую ошибку: Теперь при обращении к файлу «secret.php» будет выдаваться страница 403.html, которая находится в корне сайта. На этой странице можно написать предупреждение, которое увидят пользователи.

Запрет на отображение содержимого папки

  • HTML
    • Основы
    • Теги
  • CSS
    • Основы
    • Свойства
  • PHP
    • Основы
    • База данных
    • Объектно-ориентированное программирование
  • SQL
    • Основы
    • Советы
  • CMS
    • WordPress
    • 1С-Битрикс
  • JavaScript
    • Основы
    • Работа с DOM
    • jQuery
  • Серверное программное обеспечение
    • Apache
    • Игровые серверы
  • Средства разработки
  • Развитие и продвижение сайта
    • Почта
    • SEO
  • Хостинг MouseDC.ru
    • Личный кабинет
    • Виртуальный хостинг
    • Домены
  • Генератор паролей
  • Генератор .htpasswd

Коврик для мыши новым клиентам

Оплатите хостинг на год и получите удобный коврик

Коврик с размерами 20 на 30 сантиметров доставляется почтовым письмом. Имеет противоскользящее покрытие снизу и мягкое тряпичное покрытие сверху. Идеально подходит для лазерных мышек.

На коврик «MouseDC.ru» действует 5 летняя гарантия для клиентов нашего хостинга. Если с ковриком случится беда и он испортится, то присылайте его нам, а взамен получите новый.

Для получения подарка-коврика нужно, чтобы выполнялись следующие условия:

  • Пользователь должен быть зарегистрирован не более 30 дней назад.
  • Пользователь должен оплатить виртуальный хостинг в любой конфигурации на 12 месяцев вперёд.
  • Коврик для мышки могут получить только пользователи, которые ещё ни разу не получали его.

Для обмена подарка-коврика на новый нужно, чтобы выполнялись следующие условия:

  • Коврик должен быть получен не более 5 лет назад.
  • Необходимо быть клиентом нашего хостинга с минимум одной активной услугой виртуального хостинга и положительным балансом на своей учётной записи.
  • Вам необходимо прислать нам испортившийся коврик любым доступным способом (для согласования обмена и доставки напишите нам на support@mousedc.ru).

Помощь в переносе
с другого хостинга

Хотите переехать? Мы поможем пернести всё

Для переноса Вашего сайта на наш хостинг необходимо иметь:

  • Дамп (бэкап) базы данных
  • Архив с файлами сайта

Вы можете перенести сайт самостоятельно, а можете попросить нас о помощи. Напишите нам на support@mousedc.ru. Наши специалисты помогут.

Последовательность переноса сайта с одного хостинга на другой следующая:

  • Сайт закрывается от посетителей на обслуживание. Главное чтобы посетители не видели его содержание, чтобы ничего не записывалось в базу данных.
  • Делаются бэкапы файлов и дамп базы данных.
  • На ваш оплаченный виртуальный хостинг в MouseDC.ru загружается архив с файлами сайта и распаковывается. Затем архив можно удалить с хостинга, чтобы он не занимал место.
  • Создаётся база данных в виртуальном хостинге MouseDC.ru и в неё загружается дамп (бэкап) базы данных переносимого сайта.
  • Изменяются настройки домена переносимого сайта. Необходимо прописать в «А» записи ip адрес нового сервера (сервера, на который сейчас перенесён сайт). Необходимо подождать несколько часов, пока обновятся DNS записи для домена.
  • В конфигурационных файлах сайта изменяется адрес сервера с базой данных на новый. Вводится логин и пароль от новой базы данных.
  • Проверяется соединение с базой данных через скрипты сайта. Для этого нужно перейти на любую страницу Вашего сайта (лучше в панель администрирования сайта). Если всё грузится и ошибок нет, то соединение с базой данных успешно работает.
  • Выключается режим профилактики в настройках сайта. Посетители могут продолжить использовать сайт.

Мы можем помочь Вам сделать все вышеописанные действия. Напишите нам на support@mousedc.ru. Наши специалисты помогут.

Пожалуйста, обратите внимание, что можно перенести ещё и домен сайта на наши NS серверы.

Приветствуем всех в нашем уютном дата центре! Мы предоставляем качественный хостинг малому и среднему бизнесу, новичкам и профессионалам, любителям и энтузиастам.

  • Хостинг
  • Домены
  • VPS
  • Статьи
  • Курсы
  • Документы
  • Партнёры

Запрет доступа к сайту, папке или файлу по IP в .htaccess

  • Переход на другой тарифный план
  • Как устроена защита от DDoS
  • Списание средств за дополнительные услуги
  • Как получить тестовый период?
  • Расширение возможностей тарифного плана
  • Перенос сайтов с другого хостинга
  • Восстановление доступа к биллингу
  • Управление снимками виртуальной машины на VPS сервере
  • Установка Laravel в Ubuntu
  • Установка и первичная настройка PostgreSQL на Ubuntu 18.04
  • Настройка и запуск cron на веб-сервере
  • Установка и защита phpMyAdmin на Nginx сервере в Debian
  • Восстановление базы данных и пароля root в MySQL
  • Установка и настройка Nginx на Ubuntu 18.04
  • Установка и настройка BrainyCP
  • Установка и базовая настройка MySQL на Ubuntu 18.04
  • Установка MongoDB на Ubuntu 18.04
  • Как настроить FileZilla и подключиться к серверу по FTP
  • Основные шаги по настройке и защите VPS-сервера на CentOS
  • Причины внутренней ошибки сервера «500» и способы её решения
  • Запрет доступа к сайту, папке или файлу по IP в .htaccess
  • Подключение к серверу через Putty: примеры использования
  • Cписок горячих клавиш в терминале Linux
  • Установка ISPmanager 5 Lite на Linux сервер
  • Что такое редирект? Виды и примеры редиректов через .htaccess
  • Примеры настройки перенаправлений на NGINX
  • Основные приёмы обработки строк в bash
  • Основные команды интерпретатора bash для начинающих
  • Обновление PHP на хостинге — подробное руководство
  • Запуск контейнера Docker на Linux
  • Установка и настройка cPanel на виртуальном Linux-сервере
  • Установка и настройка WEB-сервера IIS, PHP и MySQL на Windows Server 2012
  • Установка и настройка Linux, Nginx, MySQL, PHP (LEMP) в Ubuntu 18.04
  • Установка и настройка LAMP на Debian 9
  • Как перейти в панель управления виртуальными серверами
  • Подключение к серверу по VNC
  • Как сменить пароль root на виртуальном сервере в Ubuntu
  • Как сменить пароль root на виртуальном сервере в Debian
  • Как сменить пароль root на виртуальном сервере в centOS 7
  • Как подключиться к серверу VPS по SSH
  • Как сменить пароль root на виртуальном сервере в centOS 6
  • Как подключиться к удалённому рабочему столу по RDP
  • Как заказать VPS
  • Как заказать SSL-сертификат
  • Как выбрать SSL-сертификат
  • Как установить бесплатный SSL-сертификат для сайта в ISPmanager

Защита от ботов, рассылающих спам, флуда и нежелательных посещений – одна из важнейших обязанностей любого администратора веб-ресурса. Для этого существует хорошее средство – запрет доступа по IP при помощи файла .htaccess. Разберем более подробно доступные варианты изменения уровня доступа.

Создание файла .htaccess

Сначала, создается файл .htaccess как простой документ текстового формата без расширения .txt. Его можно открыть в обычном блокноте Windows, но лучше воспользоваться более расширенным редактором, например – Notepad++.

Права на этот файл должны быть обозначены как – 644, а загрузка производиться посредством ASCII-режима. Если обнаружится, что созданный файл неработоспособен необходимо обратиться в техподдержку хостинга.

Многие бесплатные хостинги запрещают использование файла .htaccess без специального разрешения. Этот файл применим только к серверам Apache и не будет исполняться на серверах под управлением Windows.

Команды

Запретить доступ к сайту по IP при помощи файла .htaccess можно используя операторы allow и deny .

Основная директива, которая используется при ограничении доступности сайта – order . Ее синтаксис следующий:

Конструкция order deny,allow начинает код и показывает, какие параметры будут использованы для ограничения разрешений на просмотр.

  1. Оператор allow дает разрешение.
  2. Оператор deny запрещает.

В зависимости от того в каком порядке стоят операторы в коде меняется логика работы сервера.

  1. deny,allow сообщает серверу о закрытии доступа всем IP-адресам кроме разрешенных.
  2. allow,deny напротив открывает доступ для всех IP-адресов кроме запрещенных.

Стоит отметить, что на практике директива order используется не всегда, поскольку не является обязательной. При написании кода в файле .htaccess лучше придерживаться рекомендаций, отраженных в документации.

Ограничение доступа к сайту и его разделам

Место расположения файла .htaccess зависит от того, какой раздел сайта или его файл необходимо закрыть.

Полное закрытие сайта

Для того чтобы полностью закрыть сайт от посещений и возможности просмотра его содержимого в .htaccess вносится следующий код:

После этого ни с какого IP-адреса зайти на сайт будет невозможно. При такой попытке на стороне клиента выдается 403 ошибка, обозначающая запрет на просмотр.

Файл .htaccess для этой операции необходимо расположить в корне сайта.

Запрет доступа для целевого IP-адреса

Запрет для конкретных IP-адресов реализуется при помощи данного кода:

Файл .htaccess по-прежнему должен находится в корне сайта.

Разрешение только для конкретных IP-адресов

Сайт можно полностью закрыть, оставив разрешение только для конкретных IP-адресов. С этой целью в файле .htaccess, расположенном в корне сайта, прописываются следующие строки:

Разрешенные IP прописываются в коде через пробел.

Закрытие доступа по маске

В определенных ситуациях ограничение необходимо сделать по маске. Для выполнения этой операции используется код:

Усиление защиты административной части сайта

Помимо прочего, запрет доступа для определенных IP-адресов к разделам сайта помогает повысить безопасность административной части. Для этого, разрешение на доступ дается только определенным IP-адресам с использованием имени хоста. Для решения этой задачи создается данный код:

Ограничение доступа к целевой папке

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

Ограничение доступа к определенному файлу на сайте

Нередко возникают ситуации, при которых необходимо закрыть возможность просмотра не сайта или папки, а только определенного файла или группы файлов. Для этого используются директивы – files и filesmatch . Они несколько похожи на мета-теги, используемые для разметки HTML-кода.

Также требуется заключение директив в знаки <> , а также использование открывающей и закрывающей код конструкции.

«Пустой» код выглядит следующим образом:

Внутри этой конструкции прописываются необходимые условия. Как пример приведем ограничение просмотра для архива example.zip :

После размещения .htaccess с кодом в папке, где находится целевой файл при обращении к нему напрямую на стороне клиента появится сообщение об ошибке 403.

Для ограничения просмотра группы файлов используется директива filesmatch и регулярные выражения, позволяющие создать необходимую маску. Пример ограничения доступности архивных и графических файлов выглядит следующим образом:

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

Начни экономить на хостинге сейчас — 14 дней бесплатно!

htaccess запретить доступ

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

Первой причиной такого желания может стать наличие админской части сайта и необходимость скрыть ее от чужих глаз и рук. Вторым поводом к запрету доступа может являться процесс внедрения изменений на вашем сайте с необходимостью перенаправления пользователей на временную страницу информации.

В этой статье я покажу как можно:

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

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

Как с помощью .htpasswd и .htaccess запретить доступ к папке сайта.

Если ты читатель не знаешь, что это за файлы поясню:

.htaccess — файл дополнительной конфигурации веб-сервера.

.htpasswd — файл содержащий пары логин и пароль в MD5 хеше, используемый в механизме базовой аутентификации.

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

Только после того как пользователь правильно введет пару логин и пароль, соответствующую занесенной в файл .htpasswd, он будет допущен к просмотру скрытой области сайта.

Для того чтобы это осуществить достаточно создать файл .htaccess и поместить его в ту папку сайта к которой вы хотите запретить доступ.

1. Добавьте в созданный файл следующее содержание:

  • AuthType — может иметь значение Basic или Digest, в нашем случае нам подойдет Basic.
  • AuthName — текст выводимый вместе с формой авторизации.
  • AuthUserFile — путь к файлу с паролями (.htpasswd).
  • AuthGroupFile — путь к файлу групп, если он существует.
  • Require — определяет параметры аутентификации. (User,Group,Valid-user) Valid-user – все прошедшие проверку. User – пользователи имеющие права доступа. Group – группы пользователей имеющие права доступа.

2. Теперь создайте файл .htpasswd и в него поместите следующую строку:

Строка эта содержит пару логин и пароль где:

Чтобы генерировать любые пароли для файла .htpasswd можно воспользоваться утилитой для генерации паролей htpasswd.exe

Пользоваться утилитой для генерации паролей очень легко, нужно создать файл .htpasswd и в программе выбрать его с помощью кнопки «Old file«. Далее все интуитивно понятно, вводим новых пользователей и пароли к ним, затем жмем на «Update«. Кстати данная утилита генерации паролей для htpasswd, может не только создавать новые, но и редактировать старые пароли. Что очень удобно, в случае если вы забыли старый пароль. Еще стоит сказать что эта утилита является стандартной и поставляется вместе с сервером Apache.

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

Теперь важный для новичков момент! Напротив директивы AuthUserFile в .htaccess должен быть прописан абсолютный путь до файла с паролями. Узнать путь можно многими способами, но самый легкий и точный, на мой взгляд, это выполнить в index.php строку кода:

Выполнение этой строчки кода приведет к выводу на страницу абсолютного путь до корня сайта, который нам и нужен.

Внимание важное замечание! Очень полезным будет расположить файл с паролями вне папки с содержимым сайта. Это позволит защитить его от злоумышленников.

Если у тебя читатель нету прав на создание файлов вне главного каталога сайта, не переживай, ты все равно сможешь его защитить если пропишешь в .htaccess строки:

Настало время проверить работоспособность базовой авторизации. Откроем сайт через любой браузер.

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

Запретим доступ к одному файлу

Кроме запрета на директорию можно установить ограничение доступа к конкретному файлу, для этого нужно обрамить запись из .htaccess в тег

Хочу обратить внимание на то, что рассмотренный вид аутентификации, не должен являться основным средством защиты данных. Т.к. данные (логин и пароль) пересылаются между клиентом и сервером в открытом виде, и могут быть перехвачены злоумышленниками.

Как с помощью .htaccess и .htpasswd настроить политику прав пользователей

Кроме простого запрета для всех пользователей с помощью инструмента базовой аутентификации сервера, можно сделать управление ролями. Конечно, высококлассной системы распределения ролей не получится но, тем не менее, что то похожее реализовать можно.

Допустим, у нас есть сайт http://lifeexample.ru и три директории отличающиеся степенью секретности.

  1. http://lifeexample.ru/index.php — доступ имеют все пользователи из файла .htpasswd .
  2. http://lifeexample.ru/admin/ — доступ имеют админы и cуперпользователи.
  3. http://lifeexample.ru/admin/root/ — доступ имеют только cуперпользователи.

Чтобы реализовать разграничение пользователей, нужно объединить их в группы. Для этого в системе базовой аутентификации предусмотрен механизм работы с группами пользователей.

Создадим файл .htgroup, в него запишем группы и их пользователей в таком виде:

Замечу, что пользователь с логином user3 состоит сразу в двух группах, и это значит, что он имеет доступ с админской части сайта. Сразу подправим файл .htpasswd и с помощью скачанной ранее программки для генерации паролей, занесем него всех пользователей из созданных групп.

Теперь в настройках .htaccess заменим строку:

И расположим файл в главной директории сайта. Проверяем… И видим что ничего не работает. Это вполне объяснимо ведь мы не указали путь до файла с группами. Перед require добавим AuthGroupFile указав в ней путь:

Теперь можно радоваться, все заработало.

Т.к. файл .htaccess располагается в главной директории, вышеперечисленными действиями мы отрываем доступ к http://lifeexample.ru/index.php для всех имеющихся пользователей.

Следующей задачей будет отсеять обычных пользователей и оставить доступ только группам Admins и Roots к части http://lifeexample.ru/admin/. Сделать это проще чем кажется, нужно только скопировать .htaccess из главной директории, в папку “/admin” и подправить список допустимых групп, удалив из него группу Users.

Аналогичную операцию проделаем для папки “/admin/root” предназначенной только суперпользователям. Скопируем файл настроек и оставим там только группу Roots.

Еще один важный момент, если в .htaccess до всех этих операций содержались другие настройки, то при копировании этого файла в папки сайта, можно оставить только строки отвечающие за права доступа.

Страница заглушка

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

Чтобы реализовать данную потребность нужно внести некоторые изменения в тот .htaccess, что мы уже сделали, дописав в самое его начало следующие правила:

Добавив эти строки и, заменив “127.0.0.1” на свой реальный IP адрес, только мы будем иметь доступ к содержимому сайта, а все остальные IP адреса, будут перенаправляться на страницу zaglushka.php. Кстати ее нужно будет создать и поместить в корневую директорию.

Может случиться так что модуль перенаправления mod_rewrite.c будет отключен хостером. Тогда с эту задачу можно будет решить с помощью php:

Для того чтобы получить доступ к сайту нужно ввести http://имя сайта/?123456789, если код не будет веден, пользователю будет выдана страница заглушка.

Конечно, можно обойтись и более коротким куском кода:

Но первый вариант решения мне кажется, наиболее элегантным, поскольку с одного IP может входить сразу несколько пользователей, и один из них не должен иметь доступ к сайту. Для этого в первом способе используется секретный ключ.

С помощью данного скрипта можно реализовать хорошую систему аутентификации сайта с запретом доступа отдельных пользователей.

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

Аналогичный механизм с использованием cookes и секретного ключа можно выполнить с помощью .htaccess:

Закрыть сайт для всех ip адресов

Иногда случается так, что нужно закрыть доступ к сайту кардинально без использования аутентификации, для всех, кроме себя конечно. Сделать это можно все тем же .htaccess

127.0.0.1 – заменить на свой.

Закрыть сайт для списка ip адресов

В этой статье мы рассмотрели тему: “Как с помощью htaccess запретить доступ к части сайта”, статья получилась объемная и хотелось бы подвести итоги. И так самое главное было понять, как работает механизм базовой аутентификации, и зачем он вобще нужен. Напомню, что данную аутентификацию лучше не использовать там где нужно реально защитить важную информацию. Если ты уважаемый читатель еще не разобрался с тем как настраивать файлы паролей и групп, предлагаю тебе скачать их в готовом виде:

Читайте также похожие статьи:

Чтобы не пропустить публикацию следующей статьи подписывайтесь на рассылку по E-mail или RSS ленту блога.

Adblock
detector