Мы в твиттере Мы в телеграме!

Провеббер » Web » .htaccess - защити себя и свой сайт!

Набор в команду! Ведется набор в команду, для наполнения сайта новым, интересным контентом. Если у тебя есть предложения, свободное время, ты обладаешь интересным контентом, и хочешь поделиться с другими?
Обращайся к нам в ЛС группы Вконтакте.

.htaccess - защити себя и свой сайт!

Данный материал предоставлен сайтом ProWebber.cc исключительно в ознакомительных целях. Администрация не несет ответственности за его содержимое.
Скачать бесплатно .htaccess - защити себя и свой сайт!.


Прочитав эту статью, вы сможете вывести личную безопасность вашего сайта на новый уровень.

Переопределение сообщений об ошибках

Одной из полезных возможностей, предоставляемых Apache, является подмена стандартных сообщений об ошибках веб-сервера своими. Для этого служит директива ErrorDocument.

ErrorDocument 403 "<BODY><H1>Forbidden</H1>
ErrorDocument 404 /errors/404.html


Внимание: при указании непосредственно HTML кода в данной директиве кавычки ставятся только в начале строки (см. пример)!
Пути к файлам указываются относительно корневого каталога данного веб-хоста, а не относительно файловой системы (правильно: /errors/404.html; неправильно: /var/www/myhost/html/errors/404.html).


Парольная защита

Если Вам нужно защитить часть содержимого Вашего сайта от посторонних, можно воспользоваться директивами семейства Auth. Они заставляют сервер спрашивать у клиента имя пользователя и пароль для доступа к содержимому каталога, в котором размещен .htaccess, а также к его подкаталогам.

Для этого необходимо создать файл с паролями (обычно называется .htpasswd) и разместить его в безопасном месте (например, на уровень выше каталога, который является корневым для Вашего хоста; к примеру, если сайт размещен в /home/user/html, то .htpasswd лучше положить в /home/user). Для создания .htpasswd используйте утилиту htpasswd из комплекта Apache.

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

AuthUserFile /home/user/.htpasswd
AuthName “Secure Zone”
AuthType Basic
Require valid-user

AuthUserFile указывает путь к файлу с паролями. AuthName определяет так называемый 'realm' («мир»); обычно указывается, к чему осуществляется доступ (например, 'Site Management Tools', 'Billing Information' и т.п.)
AuthType определяет тип авторизации; практически всегда используется Basic (кроме него доступен тип Digest, но его мы рассматривать не будем).

Наконец, Require определяет набор условий, по которым определяется, кто из перечисленных в .htpasswd пользователей имеет доступ к данному каталогу сайта. 'valid-user' подразумевает, что доступ может получить любой пользователь после ввода пароля; вместо valid-user можно через пробел перечислить имена пользователей, которым предоставляется доступ.

Включение поддержки SSI

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

AddType text/html .shtml .htm .html
AddHandler server-parsed .shtml
Options +Includes

Блокировка по IP адресам

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

Синтаксис для этих директив таков:

Order Deny,Allow (или Allow,Deny – в зависимости от того, что требуется)
Deny from all (или адрес хоста)
Allow from all (или адрес хоста)

Например,
Order Deny,Allow
Deny from all
Allow from 192.168.0.
Allow from .localnet
Allow from admin.somewhere.in.the.net
вызывает отказ в доступе для всех, кроме сети 192.168.0.0/24, всех хостов, DNS имя которых содержит .localnet, а также хоста, DNS имя которого admin.somewhere.in.the.net.

Если нужно запретить доступ группе хостов, используется Allow,Deny:
Order Allow,Deny
Allow from all
Deny from 192.168.1.
Deny from hackers.are.everywhere.in.the.net

Принцип прост. По Order определяется порядок обработки правил allow/deny; если мы возьмем второй пример, то сначала сервер обработает правило allow from all, а затем хосты, которые прошли это правило, подвергаются проверке правилом deny; при этом все хосты из сети 192.168.1.0/24 и хост hackers.are.everywhere.in.the.net не проходят эту проверку и не получают доступа.

Более сложные применения:
<FilesMatch ".(txt|dat)$">
Order Deny,Allow
Deny from all
</Files>
– данное правило запретит любым хостам доступ к файлам с расширениями .txt и .dat (например, в них могут храниться внутренние данные скриптов).

Блокировка по реферреру

Посредством использования модуля mod_rewrite и файла .htaccess можно добиться запрета доступа к Вашим ресурсам, если клиент пришел с какого-то определенного сайта (блокировка по referer'у).

Для этого требуются следующие директивы .htaccess:

RewriteEngine on
# Options +FollowSymlinks # – раскомментировать, если при установке этого .htaccess появляется ошибка 500, Internal Server Error
RewriteCond %{HTTP_REFERER} badsite.com [NC]
RewriteRule .* – [F]

Или, если нужно перечислить больше одного сайта,

RewriteEngine on
# Options +FollowSymlinks # – раскомментировать, если при установке этого .htaccess появляется ошибка 500, Internal Server Error
RewriteCond %{HTTP_REFERER} badsite.com [NC,OR]
RewriteCond %{HTTP_REFERER} anotherbadsite.com
RewriteRule .* – [F]

Если нужно запретить доступ напрямую со всех хостов, кроме определенных, набор правил будет выглядеть примерно так:

RewriteEngine On
RewriteCond %{HTTP_REFERER} !^http://(www.)?mydomain.ru(/)?
RewriteCond %{HTTP_REFERER} !^http://(.*).mydomain.ru(/)?
RewriteRule .*.(gif|jpg|jpeg|png)$ – [F]
Изменение индекс-страницы

Задать/Изменить индексный файл и последовательность их обработки можно директивой DirectoryIndex
Например:

DirectoryIndex photo.php photo.php5 index.php

Перенаправления

Для организации редиректа средствами .htaccess достаточно строки вида:
Redirect /old_directory/old_file.html http://your_new_site.com/new_directory/new_file.html

если нужно редиректить все содержимое подкаталога:
Redirect /old_directory http://your_new_site.com/new_directory/

редирект для всего сайта:
RewriteEngine On
RewriteRule (.*) http://your_new_site.ru

Запрет обращений к .htaccess

Защитить их можно следующим образом, однако, это по умолчанию уже есть в httpd(2).conf, то есть в самой конфигурациии веб-сервера.

<Files ~ "^\.ht">
Order allow,deny
Deny from all

</Files>

Добавление MIME-типов

Для добавления MIME-типов используется директива
AddType mime/type extension
Например,
AddType application/x-bittorrent torrent

Используется она в тех случаях, когда конфигурация по умолчанию заставляет сервер передавать документы не так, как требуется; например, многие серверы по умолчанию подразумевают тип text/plain, и бинарный файл (например, rar-архив), скачанный с такого сервера, вполне может оказаться «битым».

Запрет прямых ссылок на ресурсы

Если Вы хотите избежать так называемого «хотлинкинга» – прямых ссылок на Ваши ресурсы с других сайтов – Вам опять-таки поможет .htaccess в комбинации с mod_rewrite.
Для начала рассмотрим, чем плох хотлинкинг. Например, некий сайт размещает у себя изображение, находящееся на Вашем сайте, просто указав его в тэге <img src>. При этом все обращения к такой странице вызовут скачивание данного изображения с Вашего сайта; таким образом, будет расходоваться Ваш траффик и пропускная способность канала сервера, а посетители чужого веб-сайта увидят изображение, хранящееся у Вас, без соответствующего контекста.

Как же бороться с подобной практикой?
Рассмотрим следующий пример части файла .htaccess:
RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://(www\.)?mydomain.com/.*$ [NC]
RewriteRule \.(js|css)$ - [F]

Данный код запрещает обращения к .js и .css файлам (скрипты jаvascript и описания Cascading Style Sheets), если они производятся не с Вашего сайта.

Другой пример:
RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://(www\.)?mydomain.com/.*$ [NC]
RewriteRule \.(png|gif|jpg|jpeg)$ http://www.mydomain.com/youaretheworst.gif [R,L]

При обращении извне к изображениям, хранящимся на вашем сайте, вместо самих изображений будет отображаться содержимое файла youaretheworst.gif.

Запрет вывода списка файлов

Apache (при включении соответствующих опций) умеет отображать список файлов в каталоге, если в нем нет ни одного из перечисленных в DirectoryIndex файлов. Часто эта опция включена по умолчанию, что может быть неприемлемо.
Строчка
Options -Indexes
отключит этот режим.

Однако иногда может, наоборот, понадобиться разрешить просматривать список файлов, при этом исключив из него их часть. Для этого служит IndexIgnore.
Например,
IndexIgnore *.php* *.pl *.html *.shtml
разрешает вывод списка всех файлов, кроме PHP и Perl скриптов, а также HTML документов.

Буду рад спасибкам и репе :ok:


Дополнительные ссылки на скачивание ТОЛЬКО для зарегистрированных


-3
Просмотры: 24 933 :: Комментарии (19) :: :: Нужна помощь? Задайте вопрос на форуме ::
Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь.
Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.

#1DaImeR

  • 26 февраля 2010 21:03
  • Регистрация: 21.11.2009
  • Был(а) онлайн: 15.01.2015
  • Комментариев: 338
  • -2
Вот здесь есть хоть что то полезное smile

--------------------

#2Choco Late

  • 26 февраля 2010 21:10
  • Регистрация: 23.11.2009
  • Был(а) онлайн: 24.03.2012
  • Комментариев: 72
  • -2
Охренеть как много можно сделать вещей только с одним htaccess)

#3BR0kEN

  • 26 февраля 2010 21:40
  • Регистрация: 29.11.2009
  • Был(а) онлайн: 30.11.2013
  • Комментариев: 255
  • -2
Electro Dancer, с этим хитрым системным файликом можно творить чудеса! smile Вижу что статья понравилась, рад этому. Позже напишу как свести на нет возможность ddos.

--------------------

#4Dj Dance

  • 26 февраля 2010 21:55
  • Регистрация: 11.11.2009
  • Был(а) онлайн: 26.07.2019
  • Комментариев: 26
  • -2
Огромное спасибо за небольшую статейку о парольной защите.
На одном сайте нужно сделать поддомен с закрытым доступом, уже половину интернета обошел, а здесь то что надо и в подробностях.

kep, можешь сбросить в личку ссылку на источник о парольной защите, буду очень благодарен!

#5BR0kEN

  • 26 февраля 2010 22:39
  • Регистрация: 29.11.2009
  • Был(а) онлайн: 30.11.2013
  • Комментариев: 255
  • -2
Dj Dance, ссылки нет. зайди на _http://htaccess.net.ru/
В принципе всем советую зайти на оф. сайт и почитать инфу. Много полезного можно извлечь.

--------------------

#6Fire

  • 26 февраля 2010 22:54
  • Регистрация: 23.10.2009
  • Был(а) онлайн: 14.03.2017
  • Комментариев: 53
  • -2
А вы до сих пор не юзаете htaccess ?! :D

На самом деле это только цветочки, им можно еще много чего сделать.

--------------------

#7Choco Late

  • 26 февраля 2010 23:27
  • Регистрация: 23.11.2009
  • Был(а) онлайн: 24.03.2012
  • Комментариев: 72
  • -2
Цитата: kep
Electro Dancer, с этим хитрым системным файликом можно творить чудеса! Вижу что статья понравилась, рад этому. Позже напишу как свести на нет возможность ddos.

Да, действительно понравилась, буду ждать следующую с нетерпением)
Я знал, что этот файл для какой-то защиты, но что он может выполнять такое кол-во функций - не знал)

#8zikzik

  • 27 февраля 2010 00:12
  • Регистрация: 11.11.2009
  • Был(а) онлайн: 17.08.2011
  • Комментариев: 81
  • -2
Отличная Статья Как Вижу Я открыл сезон .htaccess cool

--------------------

#9Serega12689

  • 27 февраля 2010 03:42
  • Регистрация: 8.11.2009
  • Был(а) онлайн: 4.06.2010
  • Комментариев: 40
  • -2
Отличная статья - кратко и понятно. Ждем продолжения! drink

#10romeo.web.master

  • 27 февраля 2010 07:23
  • Регистрация: 24.02.2010
  • Был(а) онлайн: 2.03.2010
  • Комментариев: 39
  • -2
Да уж класная статья тоже буду ждать продолжения!

#11garri83

  • 1 марта 2010 12:54
  • Регистрация: 27.11.2009
  • Был(а) онлайн: 7.05.2018
  • Комментариев: 30
  • -2
Удивительно!!! Очень полезная статья побольше таких бы!

RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://(www\.)?mydomain.com/.*$ [NC]
RewriteRule \.(png|gif|jpg|jpeg)$ http://www.mydomain.com/youaretheworst.gif [R,L]
у меня почему то не получилось заменить на свою картинку? ((

#12ТорЧок

  • 14 марта 2010 10:40
  • Регистрация: 5.01.2010
  • Был(а) онлайн: 5.04.2011
  • Комментариев: 247
  • -2
Цитата: FlashMob
огромное спасибо!

А кнопка нафига?

--------------------

#13Callen

  • 11 апреля 2010 20:21
  • Регистрация: 10.04.2010
  • Был(а) онлайн: 1.05.2010
  • Комментариев: 21
  • -2
Спасибо вам очень полно инфи как сайт свои защитить и за это вам БОЛЬШОЕ спасибо

#14JetPilot

  • 30 мая 2010 15:34
  • Регистрация: 19.04.2010
  • Был(а) онлайн: 1.12.2010
  • Комментариев: 20
  • -2
Интересно :)) надо у себя попробывать cool

#15SERGON

  • 12 ноября 2010 20:53
  • Регистрация: 31.01.2010
  • Был(а) онлайн: 28.10.2013
  • Комментариев: 4
  • -2
По поводу подмены изображений в этом коде
RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://(www\.)?mydomain.com/.*$ [NC]
RewriteRule \.(png|gif|jpg|jpeg)$ http://www.mydomain.com/youaretheworst.gif [R,L]

А как сделать исключения? Например мне надо чтобы мои баннеры хранились у меня и показывались у других с моего же сайта. Я так понимаю подменяются все картнки.

#16mooltik

  • 21 ноября 2010 12:15
  • Регистрация: 27.11.2009
  • Был(а) онлайн: 28.03.2023
  • Комментариев: 19
  • -2
Блин я столько времени потраил ища подобную статью, а вона вон тут лежыт )

#17HEMASTER

  • 26 ноября 2010 19:36
  • Регистрация: 20.10.2010
  • Был(а) онлайн: 29.04.2015
  • Комментариев: 11
  • 0
я использую htaccess только для ЧПУ

#18kagan

  • 27 декабря 2010 00:19
  • Регистрация: 26.12.2010
  • Был(а) онлайн: 26.12.2010
  • Комментариев: 11
  • 0
Статься умная, Администратор правильно делает!

#19wolf_soloist

  • 29 июня 2011 01:09
  • Регистрация: 8.04.2010
  • Был(а) онлайн: 25.08.2014
  • Комментариев: 9
  • -2
Подскажите, а что прописать в htaaccess, чтобы страницы вида /addnews.html или /index.php?do=feedback выбивали стандартную ошибку 404, мол страниц не существует?

Информация
Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.

Архив новостей
Ноябрь 2024 (9)
Октябрь 2024 (169)
Сентябрь 2024 (13)
Август 2024 (60)
Июль 2024 (12)
Июнь 2024 (30)