Как защитить сайт: файл .htaccess советы и настройки

Автор NZK, 2011 Май 07, 15:51

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

Ключевые слова [SEO] защитанастройкифайл .htaccess

NZK

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

Внимание! Обязательно сохраните существующую копию Вашего рабочего .htacsess файла, перед тем как начать работать с ним.
На самом деле, многие разработчики ломают голову, - "Как ограничить доступ к одному или нескольким файлам, функциям, или страницам?" На самом деле всё это может быть реализованно в одном лишь файле .htaccess но очень аккуратно, потому как злоупотребление его использованием, может привести не только к снижению работоспособности и производительности сайта, а так же к нарушениям функциональности и стабильности его работы.

Итак рассмотрим самые основные но очень важные функции:

1. Запрет загрузки файлов с различного рода внешних сайтов

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

1 Options +FollowSymlinks
2 #Запрет загрузки файлов с различного рода внешних сайтов
3 RewriteEngine On
4 RewriteCond %{HTTP_REFERER} !^$
5 RewriteCond %{HTTP_REFERER} !^https://(www.)?sitename.net/ [nc]
6 RewriteRule .*.(gif|jpg|png)$ https://sitename.net/images/picture.jpg[nc]

В данном коде после вставки измените sitename.net на домен Вашего сайта и создать изображение picture.jpg, которое будет отображаться вместо той картинки которая будет запрашиваться другим сайтом или пользователем.

2. Блокировка нежелательных для сайта User Agents

Данная команда блокирует нежелательных User Agent которые могут попусту перегружать сайт ненужными запросами или потенциально угрожать его работоспособности.

01    #Блокируем плохих ботов и роботов
02    SetEnvIfNoCase user-Agent ^FrontPage [NC,OR]
03    SetEnvIfNoCase user-Agent ^Java.* [NC,OR]
04    SetEnvIfNoCase user-Agent ^Microsoft.URL [NC,OR]
05    SetEnvIfNoCase user-Agent ^MSFrontPage [NC,OR]
06    SetEnvIfNoCase user-Agent ^Offline.Explorer [NC,OR]
07    SetEnvIfNoCase user-Agent ^[Ww]eb[Bb]andit [NC,OR]
08    SetEnvIfNoCase user-Agent ^Zeus [NC]
09    <limit get="" post="" head="">
10    Order Allow,Deny
11    Allow from all
12    Deny from env=bad_bot
13    </limit>

На сайте List of User-Agents Вы сможете найти списки нежелательных User Agent браузеров, роботов и пауков поисковых машин, веб-каталогов, менеджеров закачек, спам-ботов и плохих ботов.

Everybody

#1
Явно гдето скопировал, хотя этой инфы в инете предостаточно, ошибки есть (перед каждой строчкой не нужны цифры).

Продолжу список полезных решений для .htaccess

При обращении по адресу сайта, стартует страница с указанного скрипта
DirectoryIndex index.php
Обращение к файлу только для определенного ип адреса
<Files admin.php>
Deny from all
Allow from 87.170.216.123
</Files>

Запрет для проксей к сайту
PROXY обрежем так
RewriteCond %{HTTP:VIA} !^$ [OR]
RewriteCond %{HTTP:FORWARDED}   !^$ [OR]
RewriteCond %{HTTP:USERAGENT_VIA}   !^$ [OR]
RewriteCond %{HTTP:X_FORWARDED_FOR} !^$ [OR]
RewriteCond %{HTTP:PROXY_CONNECTION} !^$ [OR]
RewriteCond %{HTTP:XPROXY_CONNECTION}   !^$ [OR]
RewriteCond %{HTTP:HTTP_PC_REMOTE_ADDR} !^$ [OR]
RewriteCond %{HTTP:HTTP_CLIENT_IP}  !^$
RewriteRule ^(.*)$ - [F]

Блокировка всяких ненужных поисковых ботов
RewriteCond %{REQUEST_URI} !^/403.php$
RewriteCond %{HTTP_USER_AGENT} .*Slurp.* [OR]
RewriteCond %{HTTP_USER_AGENT} .*AsksJeeves.* [OR]
RewriteCond %{HTTP_USER_AGENT} .*HPsWebsPrintSmart.* [OR]
RewriteCond %{HTTP_USER_AGENT} .*HTTrack.* [OR]
RewriteCond %{HTTP_USER_AGENT} .*IDBot.* [OR]
RewriteCond %{HTTP_USER_AGENT} .*IndysLibrary.* [OR]
RewriteCond %{HTTP_USER_AGENT} .*ListChecker.* [OR]
RewriteCond %{HTTP_USER_AGENT} .*MSIECrawler.* [OR]
RewriteCond %{HTTP_USER_AGENT} .*NetCache.* [OR]
RewriteCond %{HTTP_USER_AGENT} .*Nutch.* [OR]
RewriteCond %{HTTP_USER_AGENT} .*RPT-HTTPClient.* [OR]
RewriteCond %{HTTP_USER_AGENT} .*rulinki.ru.* [OR]
RewriteCond %{HTTP_USER_AGENT} .*Twiceler.* [OR]
#RewriteCond %{HTTP_USER_AGENT} .*WebAlta.* [OR]
RewriteCond %{HTTP_USER_AGENT} .*WebstersPro.* [OR]
RewriteCond %{HTTP_USER_AGENT} .*www.cys.ru.* [OR]
RewriteCond %{HTTP_USER_AGENT} .*Wysigot.* [OR]
RewriteCond %{HTTP_USER_AGENT} .*Yeti.* [OR]
RewriteCond %{HTTP_USER_AGENT} .*Accoona.* [OR]
RewriteCond %{HTTP_USER_AGENT} .*CazoodleBot.* [OR]
RewriteCond %{HTTP_USER_AGENT} .*CFNetwork.* [OR]
RewriteCond %{HTTP_USER_AGENT} .*ConveraCrawler.* [OR]
RewriteCond %{HTTP_USER_AGENT} .*DISCo.* [OR]
RewriteCond %{HTTP_USER_AGENT} .*DownloadsMaster.* [OR]
RewriteCond %{HTTP_USER_AGENT} .*FASTsMetaWebsCrawler.* [OR]
RewriteCond %{HTTP_USER_AGENT} .*Flexumsspider$ [OR]
RewriteCond %{HTTP_USER_AGENT} .*Gigabot.* [OR]
RewriteCond %{HTTP_USER_AGENT} .*HTMLParser.* [OR]
#RewriteCond %{HTTP_USER_AGENT} .*ia_archiver.* [OR]
RewriteCond %{HTTP_USER_AGENT} .*ichiro.* [OR]
RewriteCond %{HTTP_USER_AGENT} .*IRLbot.* [OR]
RewriteCond %{HTTP_USER_AGENT} .*Java.* [OR]
RewriteCond %{HTTP_USER_AGENT} .*km.rusbot$ [OR]
RewriteCond %{HTTP_USER_AGENT} .*kmSearchBot.* [OR]
RewriteCond %{HTTP_USER_AGENT} .*libwww-perl.* [OR]
RewriteCond %{HTTP_USER_AGENT} .*Lupa.ru.* [OR]
RewriteCond %{HTTP_USER_AGENT} .*LWP::Simple.* [OR]
RewriteCond %{HTTP_USER_AGENT} .*lwp-trivial.* [OR]
RewriteCond %{HTTP_USER_AGENT} .*Missigua.* [OR]
RewriteCond %{HTTP_USER_AGENT} .*MJ12bot.* [OR]
#RewriteCond %{HTTP_USER_AGENT} .*msnbot.* [OR]
#RewriteCond %{HTTP_USER_AGENT} .*msnbot-media.* [OR]
RewriteCond %{HTTP_USER_AGENT} .*OfflinesExplorer.* [OR]
RewriteCond %{HTTP_USER_AGENT} .*OmniExplorer_Bot.* [OR]
RewriteCond %{HTTP_USER_AGENT} .*x-mu.net* [OR]
RewriteCond %{HTTP_USER_AGENT} .*PEAR.* [OR]
RewriteCond %{HTTP_USER_AGENT} .*psbot.* [OR]
RewriteCond %{HTTP_USER_AGENT} .*Python.* [OR]
RewriteCond %{HTTP_USER_AGENT} .*rulinki.ru.* [OR]
RewriteCond %{HTTP_USER_AGENT} .*SMILE.* [OR]
RewriteCond %{HTTP_USER_AGENT} .*Speedy.* [OR]
RewriteCond %{HTTP_USER_AGENT} .*TeleportsPro.* [OR]
RewriteCond %{HTTP_USER_AGENT} .*TurtleScanner.* [OR]
RewriteCond %{HTTP_USER_AGENT} .*voyager.* [OR]
#RewriteCond %{HTTP_USER_AGENT} .*Webalta.* [OR]
RewriteCond %{HTTP_USER_AGENT} .*WebCopier.* [OR]
RewriteCond %{HTTP_USER_AGENT} .*WebData.* [OR]
RewriteCond %{HTTP_USER_AGENT} .*WebZIP.* [OR]
RewriteCond %{HTTP_USER_AGENT} .*Wget.* [OR]
RewriteCond %{HTTP_USER_AGENT} .*Yanga.* [OR]
RewriteCond %{HTTP_USER_AGENT} .*Yeti.*
RewriteRule .* /403.php [F]

Бан ip через .htaccess (можно указать как один конкретный ип так и подсети)
<Limit GET HEAD POST>
order allow,deny
deny from 85.94
deny from 217.147.112.0/20
allow from all
</LIMIT>

Принудительное указивание кодировки сайта
AddDefaultCharset utf-8
Если в директории сайта нету стартового скрипта index.php index.html то показывает содержимое директории а выдает ошибку на 403 (нет доступа)
Options -Indexes
Обработка ошибок сервера, можно указать свои странички при возникновении ошибки.
код 401 - Требуется авторизация (Authorization Required)
код 403 - Нет доступа (Forbidden)
код 404 - Не найден файл (File not found)
код 500 - Внутренняя ошибка сервера (Internal Server Error)

ErrorDocument 401 /errors/401.html
ErrorDocument 403 /errors/403.html
ErrorDocument 404 /errors/404.html
ErrorDocument 500 /errors/500.html

... или редиректить на другой сайт
ErrorDocument 401 https://x-mu.net/
ErrorDocument 403 https://x-mu.net/
ErrorDocument 404 https://x-mu.net/
ErrorDocument 500 https://x-mu.net/

И на последок, супер-пупер защита от заливки шеллов (запрет на исполняемые файлы php и т.д.) в папки аплоад и т.д.
Разместить либо в папке либо в главной папке и это правило действует также на субпапки
php_flag engine  off
<FilesMatch ".([Pp][Hh][Pp]|[Cc][Gg][Ii]|[Pp][Ll]|[Ph][Hh][Tt][Mm][Ll]).?.*">
Order allow,deny
Deny from all
</FilesMatch>

Похожие темы (4)