Htaccess — запрет доступа к папке и файлу
Файл конфигураций htaccess, который используется в серверах Apache, — это не только средство преобразования ссылок на сайте, но и возможность улучшить защиту контента веб-ресурса, файлов и папок на хостинге. Но чтобы реализовать запрет посторонним посетителям для доступа к файлу или папке на хостинге, нужно уметь настраивать файл htaccess. В данной статье вы узнаете о различных способах, как закрыть доступ к любому файлу или папке, размещенному на вашем сервере.
Содержание
Почему стоит запретить доступ к файлам на сервере
Сайты воруют — это не паранойя и не миф, а жестокая реальность сегодняшних дней в Интернете. Как только ваш ресурс обретает свою аудиторию и нормальный запас контента, у него появляются последователи, которые желают своровать посты и файлы через сервер. И чтобы бороться с этим, вы должны запретить им доступ к каждому важному файлу и папке, иначе через время вы обнаружите, что появилось масса сайтов-клонов. Бывают случаи, что поисковые системы по непонятным причинам признают эти сайты-клоны подлинными генераторами контента, а ваш ресурс загоняют под фильтр за надуманный плагиат. Чтобы такого не случилось, вы должны научиться настраивать уровень доступа для каждого каталога сервера. И сделать это можно при помощи htaccess.
Файл дополнительных конфигураций htaccess позволяет гибко настраивать не только сайт в общем, а и отдельные его папки, то есть разделы.
При помощи него вы сумеете на одних страницах поставить запрет на файлы, а на других активировать открытый листинг. Как применять это на практике — это уже ваше дело. Главное, что файл htaccess поможет запретить проходимцам с плохими помыслами воровать ваш контент.
Как настроить доступ к файлам и папкам через файл htaccess
Для начала вам стоит определиться с правами для конкретного каталога и ряда файлов. Если вы не хотите, чтобы на папке стоял строгий запрет, и желаете открыть каталог для просмотра посетителям в виде листинга без какого-либо оформления, то можете воспользоваться опцией Options Indexes. Данная опция позволяет включать или выключать листинг файлов. Для активации листинга вам нужно прописать Options +Indexes. Если хотите его запретить, то вместо плюса «+» поставьте минус «-«.
При помощи опции Options Indexes у вас не получится создать гибкий листинг файлов в каталоге, если не воспользуетесь дополнительной директивой IndexIgnore. Эта директива позволяет вписать названия файлов в «список игнорирования» — они не будут отображаться вместе с другими. По умолчанию, директива IndexIgnore необходима для индексных файлов каталога.
Настройка доступа при помощи файла htaccess может проходить совсем в другом русле. Вы можете не терять время на написание отдельных файлов htaccess, а прописать общие настройки в одном файле, и разместить его в корневом каталоге. К примеру, вы можете одной строкой запретить доступ сразу для всех пользователей к любому файлу на сайте. Для этого напишите Deny From All. Тогда никто не сумеет украсть с вашего ресурса файл, но и скачать для себя этого тоже никто не сможет, так что рекомендуется настраивать запрет доступа более гибко.
Директива Deny From All в файле htaccess может быть настроена не так обобщено, а включать некоторые исключения. К примеру, вы можете запретить загрузку файлов только для некоторых пользователей. В таком случае вам понадобятся IP-адреса недоброжелателей, чтобы вы могли их вписать в черный список при помощи строки Deny From IP. В том случае, если вы хотите настроить исключения для запрета доступа для некоторых доверенных пользователей, то можете в файле htaccess указать IP-адреса через строку Allow From IP.
Порой нет необходимости ограждать все файлы от возможности загрузить их к себе на ПК. Так делают большинство сайтов, работающих в Рунете. Ведь посетителю будет не очень приятно, если он увидит интересную картинку или фотографию, захочет ее установить к себе на обои в компьютере, но не сможет скачать. Потому директиву Deny лучше использовать для защиты конкретных файлов. Для этого вам нужно прописать имя файла в виде , в следующей строке указать order allow,deny, а в конце написать deny from all. Так вы сумеете защитить только то, что представляет реальную ценность для сохранности вашего ресурса, и не будете выглядеть скупым вебмастером, который жадничает картинками.
Как настроить защиту от хотлинков
Вы наверняка сталкивались с тем, что на некоторых сайтах в комментариях в качестве картинки можно оставлять ссылку на фотографию из другого сайта. Эта ссылка именуется «хотлинк». Суть хотлинка в том, что при обращении к картинке по ссылке, нагружается не тот сайт, где расположена копия картинки, а тот, где помещен оригинал. Со временем, если хотлинков становится много, а такое часто случается на популярных ресурсах, сервер перегружается. В итоге, сайт «падает» и появляются различные ошибки сервера.
Чтобы защитить свой ресурс от хотлинков, не обязательно вдаваться в самые радикальные меры и блокировать доступ к файлам для всех пользователей. Опытные пользователи серверов Apache уже давно научились выстраивать защиту от hotlink при помощи директивы RewriteRule, то есть благодаря написанию правила преобразования ссылок. Но при этом на вашем сервере должен быть разрешен модуль mod_rewrite. Чтобы организовать защиту от хотлинков, но разрешить просмотр и использование файлов пользователями вашего ресурса, вам нужно будет указать в htaccess всего три строчки:
- RewriteCond %{HTTP_REFERER} !^$ — данная директива является условием преобразования ссылок.
- RewriteCond %{HTTP_REFERER} !^http(s)?://(www.)?ваш_домен.ru.*$ [NC] — данная строка указывает на то, что пользователям вашего сайта доступ не будет запрещен.
- RewriteRule \.(jpe?g|bmp|gif|png|css|zip|pdf|txt|doc)$ — [NC,F,L] — эта строка указывает для каких типов файлов установлен запрет. Теперь, если другие сайты попробуют ссылаться на ваши файлы, они не будут открываться у них, потому что доступ разрешен только вашему серверу и пользователям, находящимся у вас на ресурсе.
С указанным методом борьбы с хотлинками стоит быть весьма осторожным, потому что он может навредить индексации ресурса. Если вы запретите посторонним пользователям просмотр файлов, то автоматически ограничите доступ для поисковых роботов. Потому вам лучше прописать в директиве не только домен вашего сайта, но имена роботов поисковых систем. Для этого нужно лишь вместо «ваш_домен.ru» указать имена роботов. При этом для каждого робота нужно прописать отдельную строку с директивой RewriteCond. Имена поисковых роботов сможете узнать у конкретных поисковиков в технической поддержке.
Можно ли защитить файлы при помощи пароля
Файл htaccess настолько полезный, что его даже можно использовать для защиты данных паролем. Вы сможете запаролить любой файл или каталог, а также группы файлов одинаковых форматов и одновременно несколько папок. Для этого вам нужно будет создать файл, в котором содержатся пароли — .htpasswd. Кроме того, вам нужно будет указать, какое сообщение выводить при авторизации пользователей. Важно также прописать путь к файлу с паролями в полном виде, иначе защита не сработает. И вот как примерно будет выглядеть настройка парольной аутентификации в файле htaccess:
- AuthName «What is your password?» — первая строка нужна для указания приветственного сообщения. Писать можно только на латинице с цифрами.
- AuthType Basic — это указанный тип авторизации «базовый», то есть парольная аутентификация.
- AuthUserFile — далее нужно указать путь к файлу с паролями.
- require valid-user — это требование для пользователя авторизоваться перед тем, как он получит доступ к защищенной области сервера.
Это лишь меньшая половина того, что вы можете сделать при помощи файла htaccess для защиты файлов и папок! Но этого может быть достаточно.