Htaccess для защиты от вирусов

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

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

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

И так начинаем формировать файл htaccess …

Включаем перенаправления. Далее нам они понадобятся.

RewriteEngine On

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

ServerSignature Off
Options -Indexes
DirectoryIndex index.php index.html index.htm

Выключаем потенциально опасные директивы php, в зависимости какая версия используется.
Для PHP4.x

php_flag magic_quotes_gpc off
php_flag magic_quotes_runtime off
php_flag register_globals off

Для PHP 5.x

php_flag display_errors off
php_flag magic_quotes_gpc off
php_flag magic_quotes_runtime off
php_flag register_globals off

Переходим непосредственно к правилам WAF — Web Application Firewall. Часто его продают за отдельные большие деньги, но частично функции можно реализовать подручными средствами.

Блокируем все типы запросов, кроме стандартных GET и PUT

RewriteCond % ^(TRACE|DELETE|TRACK|DEBUG) [NC]
RewriteRule .* - [F,L]

Защита от DDoS через атаку на параметр Range

RewriteCond % ^(HEAD|GET) [NC]
RewriteCond % (8*-1*)(\s*,\s*3*-2*)+
RewriteRule .* - [F]

Защита от LFI (Local File inclusion) и RFI (Remote file inclusion)

RewriteCond % ![a-zA-Z0-9_]=http://%/
RewriteCond % [a-zA-Z0-9_]=http:// [OR]
RewriteCond % [a-zA-Z0-9_]=https:// [OR]
RewriteCond % [a-zA-Z0-9_]=ftp:// [OR]
RewriteCond % [a-zA-Z0-9_]=gopher:// [OR]
RewriteCond % [a-zA-Z0-9_]=(\.\.//?)+ [OR]
RewriteCond % [a-zA-Z0-9_]=/([a-z0-9_.]//?)+ [OR]
RewriteCond % (\.\./|%2e%2e%2f|%2e%2e/|\.\.%2f|%2e\.%2f|%2e\./|\.%2e%2f|\.%2e/) [OR]
RewriteCond % \=\|w\| [NC]
RewriteRule .* - [F,L]

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

RewriteCond % ^(.*)/self/(.*)$ [NC,OR]
RewriteCond % ^(.*)cPath=http://(.*)$ [NC,OR]
RewriteCond % (localhost|loopback|127\.0\.0\.1) [NC,OR]
RewriteCond % (\.<1,>/)+(motd|etc|bin) [NC,OR]
RewriteCond % \$_POST [NC,OR]
RewriteCond % wp-config.php [NC,OR]
RewriteCond % (javascript:).*(;).* [NC,OR]
RewriteCond % \=PHP[0-9a-f]<8>-[0-9a-f]<4>-[0-9a-f]<4>-[0-9a-f]<4>-[0-9a-f] <12>[NC,OR]
RewriteCond % ^(%2d|-)[^=]+$ [NC,OR]
RewriteCond % ^(%2d|\-)[^=]+$ [NC]
RewriteRule .* - [F,L]

RewriteCond % (%0A|%0D|\\r|\\n) [NC,OR]
RewriteCond % cgi-bin [NC,OR]
RewriteCond % owssvr\.dll [NC,OR]
RewriteCond % server-status [NC]
RewriteRule .* - [F,L]

RewriteRule /DOCUMENT_ROOT - [F,L]
RewriteRule /_mem_bin - [F,L]
RewriteRule /msadc - [F,L]
RewriteRule /_vti_bin - [F,L]
RewriteRule /_vti_inf.html - [F,L]


Order Allow,Deny
Deny from All

Закрываем доступ к вашему сайту ряду сайтов.

RewriteCond % ^.*(http|https|ftp)(%3A|:)(%2F|/)(%2F|/)(w)<0,3>.?(blogger|picasa|blogspot|tsunami|petapolitik|photobucket|imgur|imageshack|wordpress\.com|img\.youtube|tinypic\.com|upload\.wikimedia|kkc|start-thegame).*$ [NC,OR]
RewriteCond % ^.*(http|https|ftp)(%3A|:)(%2F|/)(%2F|/)(w)<0,3>.?(blogger|picasa|blogspot|tsunami|petapolitik|photobucket|imgur|imageshack|wordpress\.com|img\.youtube|tinypic\.com|upload\.wikimedia|kkc|start-thegame).*$ [NC]
RewriteRule .* index.php [F,L]

Часто уязвимая компонента TimThumb

RewriteCond % ^.*%.*
RewriteCond % (timthumb\.php|phpthumb\.php|thumb\.php|thumbs\.php) [NC,OR]
RewriteCond % (uploadify/uploadify.php) [NC]
RewriteRule .* - [F,L]

UserAgent’ы сканеров безопасности и автоматических взломщиков

RewriteCond % ( |’|%0A|%0D|%27|%3C|%3E|%00) [NC,OR]
RewriteCond % (;| |'|"|\)|\(|%0A|%0D|%22|%27|%28|%3C|%3E|%00).*(libwww-perl|wget|python|nikto|curl|scan|winhttp|HTTrack|clshttp|archiver|loader|email|harvest|extract|grab|miner) [NC]
RewriteRule .* - [F,L]

RewriteCond % "NT 5.1; SV1" [NC]
RewriteRule .* - [F,L]

Защита от SQL иньекций и удаленного выполнения кода

RewriteCond % ^(.*)([-_a-z]<1,15>)=(eval|chmod|chdir|mkdir|rmdir|whoami|uname|unzip|gunzip|grep|more|umask|telnet|ssh|ftp|which|mkmode|touch|logname|edit_file|search_text|find_text|php_eval|download_file|ftp_file_down|ftp_file_up|ftp_brute|mail_file|mysql|mysql_dump|db_query|file_get_contents)([^a-zA-Z0-9].+)*$ [OR]
RewriteCond % ^(.*)(wget|shell_exec|passthru|popen|proc_open)(.*)$
RewriteRule .* - [F,L]

RewriteCond % ( |'|%0A|%0D|%27|%3C|%3E|%00) [NC,OR]
RewriteCond % (\ |%3E) [NC,OR]
RewriteCond % ( |%3E) [NC,OR]
RewriteCond % (\ |%3E) [NC,OR]
RewriteCond % ( |%3E) [NC,OR]
RewriteCond % (\ |%3E) [NC,OR]
RewriteCond % ( |%3E) [NC,OR]
RewriteCond % (\ |%3E) [NC,OR]
RewriteCond % ( |%3E) [NC,OR]
RewriteCond % base64_encode.*\(.*\) [NC,OR]
RewriteCond % base64_(en|de)code[^(]*\([^)]*\) [NC,OR]
RewriteCond % GLOBALS(=|\[|\%[0-9A-Z]<0,2>) [OR]
RewriteCond % _REQUEST(=|\[|\%[0-9A-Z]<0,2>) [OR]
RewriteCond % ^.*(\(|\)| |%3c|%3e).* [NC,OR]
RewriteCond % ^.*(\x00|\x04|\x08|\x0d|\x1b|\x3c|\x3e|\x7f).* [NC,OR]
RewriteCond % (NULL|OUTFILE|LOAD_FILE) [NC,OR]
RewriteCond % concat[^\(]*\( [NC,OR]
RewriteCond % union([^s]*s)+elect [NC,OR]
RewriteCond % union([^a]*a)+ll([^s]*s)+elect [NC,OR]
RewriteCond % \-[sdcr].*(allow_url_include|allow_url_fopen|safe_mode|disable_functions|auto_prepend_file) [NC,OR]
RewriteCond % (;| |'|"|\)|%0A|%0D|%22|%27|%3C|%3E|%00).*(/\*|union|select|insert|drop|delete|update|cast|create|char|convert|alter|declare|order|script|set|md5|benchmark|encode) [NC,OR]
RewriteCond % (sp_executesql) [NC]
RewriteRule .* - [F,L]

Небезопасные системные компоненты

RewriteRule /phpmy/ - [F,L]
RewriteRule /phpmyadmin/ - [F,L]
RewriteRule /phpMy/ - [F,L]
RewriteRule /_phpmyadmin/ - [F,L]
RewriteRule /pma/ - [F,L]
RewriteRule /MyAdmin/ - [F,L]
RewriteRule scripts/setup.php - [F,L]
RewriteRule /backup - [F,L]
RewriteRule dumper.php - [F,L]
RewriteRule /admin/phpmyadmin - [F,L]
RewriteRule /admin/pma - [F,L]
RewriteRule /dbadmin - [F,L]
RewriteRule /mysql-admin - [F,L]
RewriteRule /mysqlmanager - [F,L]
RewriteRule /mysql - [F,L]
RewriteRule /phpadmin - [F,L]
RewriteRule /phpmanager - [F,L]
RewriteRule /phpmyadmin1 - [F,L]
RewriteRule /phpmyadmin2 - [F,L]
RewriteRule /phpMyAdmin-2 - [F,L]
RewriteRule /php-myadmin - [F,L]
RewriteRule /phpmy-admin - [F,L]
RewriteRule /pma2005 - [F,L]
RewriteRule /PMA2005 - [F,L]
RewriteRule /p/m/a - [F,L]
RewriteRule /pma - [F,L]
RewriteRule /sqlmanager - [F,L]
RewriteRule /sqlweb - [F,L]
RewriteRule /typo3/phpmyadmin - [F,L]
RewriteRule /webadmin - [F,L]
RewriteRule /webdb - [F,L]
RewriteRule /web/phpMyAdmin - [F,L]
RewriteRule /xampp/phpmyadmin - [F,L]
RewriteRule /myadminscripts/setup.php - [F,L]
RewriteRule /mysqladmin - [F,L]
RewriteRule /php-my-admin - [F,L]
RewriteRule /phpmyadmin - [F,L]
RewriteRule /websql - [F,L]
RewriteRule /myadmin - [F,L]
RewriteRule /sql/ - [F,L]
RewriteRule /mysql/ - [F,L]
RewriteRule /setup.php?dir - [F,L]
RewriteRule /MSOffice/cltreq.asp - [F,L]
RewriteRule ///?_SERVER[DOCUMENT_ROOT] - [F,L]
RewriteRule //?_SERVER[DOCUMENT_ROOT] - [F,L]
RewriteRule /pagead/test_domain.js - [F,L]
RewriteRule /pagead/osd.js - [F,L]
RewriteRule /pagead/expansion_embed.js - [F,L]
RewriteRule /pagead/render_ads.js - [F,L]
RewriteRule /pagead/atf.js - [F,L]
RewriteRule (.*)\cmd.exe$ - [F,L]

RewriteRule ^cache/js/.+\.php\d<0,1>$ - [L]
RewriteRule ^cache/css/.+\.php\d<0,1>$ - [L]
RewriteRule ^cache/.+\.php\d<0,1>$ - [F,L]
RewriteRule ^cache/.+\.php\d<0,1>$ - [F,L]
RewriteRule ^tmp/ - [F,L]
RewriteRule ^images/.+\.php\d<0,1>$ - [F,L]

RewriteCond % (^|&)tmpl=(component|system) [NC]
RewriteRule .* - [L]
RewriteCond % (^|&)t(p|emplate|mpl)= [NC]
RewriteRule .* - [F]

RewriteRule ^(configuration\.php(-dist)?)$ - [F]

RewriteRule ^components/com_uddeim/captcha15\.php$ - [L]
RewriteRule ^modules/mod_raxo_allmode/tools/tb.php$ - [L]
RewriteRule ^plugins/system/GoogleGears/gears-manifest\.php$ - [L]
RewriteRule ^plugins/content/jw_allvideos/includes/jw_allvideos_scripts\.php$ - [L]
RewriteRule ^administrator/components/com_admintools/restore\.php$ - [L]
RewriteRule ^administrator/components/com_akeeba/restore\.php$ - [L]
RewriteRule ^kickstart\.php$ - [L]

RewriteCond % !(\.php)$
RewriteCond % -f
RewriteRule ^components/com_agora/img/members/ - [L]

RewriteRule ^administrator/?$ - [L]
RewriteRule ^administrator/index\.(php|html?)$ - [L]
RewriteRule ^administrator/index[23]\.php$ - [L]
RewriteRule ^administrator/(components|modules|templates|images|plugins)/([^/]+/)*([^/.]+\.)+(jp(e?g|2)?|png|gif|bmp|css|js|swf|html?|mp(eg?|[34])|avi|wav|og[gv]|xlsx?|docx?|pptx?|zip|rar|pdf|xps|txt|7z|svg|od[tsp]|flv|mov)$ - [L]
RewriteRule ^administrator/ - [F]

RewriteRule ^xmlrpc/(index\.php)?$ - [L]
RewriteRule ^xmlrpc/ - [F]

RewriteRule ^includes/js/ - [L]
RewriteRule ^(includes|language|libraries|logs|tmp)/ - [F]

RewriteRule ^(cache|components|modules|plugins|templates)/([^/]+/)*([^/.]+\.)+(jp(e?g|2)?|png|gif|bmp|css|js|swf|html?|mp(eg?|[34])|avi|wav|og[gv]|xlsx?|docx?|pptx?|zip|rar|pdf|xps|txt|7z|svg|od[tsp]|flv|mov)$ - [L]

Это далеко не все, но поможет в 90% случаях. Список постоянно обновляется. Следите за изменениями.

Файл .htaccess (Hypertext Access, Доступ к гипертексту) — это конфигурационный файл сервера, который находится в корневой папке сайта. В этом файле можно сделать дополнительные настройки для защиты от хакеров и спама, например, запретить доступ к определенному файлу или папке, установить пароль на папку, добавить редиректы каких-то запросов, заблокировать ip и так далее. Это мощный инструмент, который можно использовать для увеличения безопасности сайта.

В этой статье вы узнаете, что можно добавить в файл .htaccess для увеличения безопасности сайта.

Что может делать .htaccess

Файл используется для настройки сервера, типичное применение файла:

  • Включает и отключает редиректы на другие страницы
  • Добавляет пароль на папки
  • Блокирует пользователей по IP
  • Отключает показ содержимого папок
  • Создает и использует собственные страницы для ошибок

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

Если вы уже знаете, для чего нужен этот файл, переходите к списку.

Сделайте бэкап

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

Как создать .htaccess

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

Если ваш сервер или компьютер не позволяет создать файл с таким именем, создайте файл htaccess.txt, перенесите его на сервер и на сервере переименуйте его в .htaccess.

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

Для одиночной установки:

Для мультисайт установки, версия Вордпресс 3.5 или выше, если сайты находятся в подпапках:

Для мультисайт установки, версия Вордпресс 3.5 или выше, если сайты находятся на субдоменах:

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

Куда добавлять изменения

Строки, начинающиеся с тега #, являются комментариями и не являются правилами для исполнения .htaccess.

Добавляйте свои комментарии к вашим правилам.

Когда вы добавляете свои правила, добавляйте их выше или ниже стандартных правил Вордпресс.

Не добавляйте и ничего не редактируйте между строками # BEGIN WordPress и # END WordPress . Для мультисайт установок таких комментариев нет, но не добавляйте и не редактируйте ничего в коде для мультисайт установок.

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

Если у вас Nginx сервер, здесь вы найдете htaccess — nginx конвертер.

Как редактировать файл .htaccess

Вы можете редактировать .htaccess из вашей хостинг-панели, или через ftp-клиент.

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

Если вы пользуетесь ftp-клиентом — зайдите на свой сервер, найдите .htaccess в корневой папке сайта, скопируйте его на свой компьютер, отредактируйте, сохраните и закачайте обратно на сервер. Удалите старый файл с сервера, или замените старый на новый.

1. Защита важных файлов

Запретите доступ к файлам wp-config.php, htaccess, php.ini и логам ошибок. Добавьте это правило, чтобы запретить доступ к этим файлам:

У вас может не быть файла php.ini. Вместо него может быть файл php5.ini или php7.ini. Если у вас есть файл php5 или php7, замените php.ini на php5.ini или php7.ini . Если файла php.ini нет вообще, уберите php.ini| из правила.

Если вы хотите запретить доступ только к файлу wp-config.php, добавьте это правило:

2. Закройте доступ к wp-login.php и wp-admin

Если вы используете статический IP, вы можете запретить доступ к странице входа или панели администратора:

Первые две строчки перенаправляют посетителя с неавторизованного IP на страницу с ошибкой 404. Это правило не будет вызывать цикличные редиректы, ваш сайт не будет выглядеть как зависший.

Замените /путь-к-вашему-сайту/ в двух первых строчках на свой адрес.
Замените IP Адрес 1 , IP Адрес 2 и IP Адрес 3 на те IP адреса, с которых вы хотите иметь доступ к страницам wp-login.php и wp-admin.

Если вам нужен только один IP адрес, удалите строки 9 и 10, если вам нужно больше адресов, добавьте нужное количество строк.

Если вы или другие пользователи имеют динамические IP (или Мультисайт), используйте следующее правило:

Замените /путь-к-вашему-сайту/ и /ваш-сайт.ru/ на свой адрес.

Хакеры используют ботов, чтобы пытаться попасть в админку Вордпресс. Это правило определяет, что только те пользователи, которые вручную набрали wp-login.php или wp-admin в браузере, получат доступ к этим страницам.

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

Еще один способ — создайте файл .htaccess в папке wp-admin . Это правило разрешает доступ к папке только указанным ip:

Замените IP Адрес 1 и IP Адрес 2 на свои IP.

3. Запретите доступ к директориям сайта

По умолчанию сервер Apache разрешает доступ к директориям сайта. То есть любой посетитель сайта может открыть любую папку и запустить любой файл внутри этой папки, если введет в браузере нужный адрес, например, ваш-сайт.ru/wp-content/uploads/

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

4. Доступ только к разрешенным типам файлов

В папке wp-content находятся темы, плагины и медиа контент. Кроме доступа к директориям сайта, можно разрешить доступ только к некоторым типам файлов, например, css, js, jpg, pdf, doc и так далее. Для этого создайте в папке wp-content новый файл .htaccess и добавьте это правило:

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

5. Запретите доступ с определенных IP

Вы можете полностью запретить доступ к сайту с подозрительных или вредоносных ip:

Замените IP Адрес 1 , IP Адрес 2 и IP Адрес 3 на ip-адреса, которым вы хотите запретить доступ к сайту.

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

Закройте доступ к PHP файлам темы и плагинов. Хакер может внедрить вредоносный код и заразить сайт. Защита PHP файлов — важная мера предосторожности.

Добавьте этот код, чтобы заблокировать доступ неавторизованных пользователей к php файлам темы и плагинов:

7. Запретите исполнение PHP файлов

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

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

Обычно хакеры загружают бэкдоры в папку /wp-content/uploads/ , поэтому заблокируйте исполнение всех PHP файлов в этой папке:

8. Защитите сайт от внедрения вредоносных скриптов

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

9. Запретите доступ к папке wp-includes

В папке wp-includes хранятся файлы ядра Вордпресс, поэтому доступ к этой папке лучше полностью закрыть:

10. Отключите показ версии PHP в заголовках ответов сервера

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

Добавьте это правило в .htaccess:

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

11. Отключите XML-RPC

XML-RPC — это API интерфейс, который используется Вордпресс для удаленного доступа к сайту, для трекбеков и пингбеков и используется плагином Jetpack. Оставьте его включенным, если вы пользуетесь чем-то из этого, и выключите, если не пользуетесь, так как хакеры могут перебирать пароли тысячами через файл xmlrpc.php.

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

Чтобы отключить XML-RPC, добавьте это правило:

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

Когда посетитель вводит в строку адреса ваш-сайт.ru/?author=1 , он перенаправляется на страницу пользователя с >

Если хакер узнает ID пользователя, который также является логином пользователя, то теперь злоумышленнику остается только узнать пароль пользователя.

Даже если пользователи используют сложные пароли, злоумышленнику лучше не знать ID пользователей:

13. Используйте SSL

Это правило требует использование SSL сертификата, выданного домену, который указан в 3-ей строчке.

14. Отключите хотлинк картинок

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

Чтобы отключить хотлинк картинок, используйте это код:

Здесь находится он-лайн генератор правил для файла .htaccess.

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

Читайте также:

Надеюсь, статья была полезна. Поделитесь в комментариях, что вы добавляете в .htaccess.



На сегодняшний день Wordpress как никогда популярен. Блоги, мини-сайты, а то и целые порталы — всё это строится на основе такого удобного движка-конструктора как Wordpress. Но за удобностью и лёгкостью освоения кроются, прежде всего, вопросы, связанные с безопасностью вашего сайта. Большая распространённость — большее внимание злоумышленников.

В этой статье описаны десять простых уловок, которые позволят сделать ваш сайт на Wordpress’e ещё более защищённым и позволят спокойнее спать по ночам.

1. Защищаем Wordpress от XSS-инъекций

В чём проблема?
Программисты всегда стараются защитить GET- и POST- запросы, однако, иногда этого недостаточно. Необходимо защитить блог от XSS-инъекций и попыток модификации переменных GLOBALS и _REQUEST .

Что делаем?
Этот код блокирует использование XSS-инъекций и попытки модифицировать переменные GLOBALS и _REQUEST . Вставьте код в ваш файл .htaccess, расположенный в корне сайта. (И не забывайте бэкапить этот файл перед внесением любых изменений).

Options +FollowSymLinks
RewriteEngine On
RewriteCond % (\ |%3E) [NC,OR]
RewriteCond % GLOBALS(=|\[|\%[0-9A-Z]<0,2>) [OR]
RewriteCond % _REQUEST(=|\[|\%[0-9A-Z]<0,2>)
RewriteRule ^(.*)$ index.php [F,L]

Как это работает?
Код позволяет проверять все запросы. Если запрос содержит тег или попытку модифицировать значение переменных GLOBALS и _REQUEST , он просто блокирует его и выдаёт пользователю 403-ю ошибку.

2. Убираем показ лишней информации

В чём проблема?
Если при попытке зайти в админку Wordpress’a вы ошибётесь с логином или паролем, вежливый движок скажет вам об этом. Ну а зачем злоумышленнику знать, что пароль, который он пытается подобрать – неверен? Давайте просто уберём вывод этой информации и чуток запутаем его.

Что делаем?
Открываем functions.php, лежащий в папке с активной темой нашего блога (wp-content/themes/название-вашей-темы/) и добавляем следующий код:

add_filter('login_errors',create_function('$a', "return null;"));

сохраняем файл. Вуаля – больше никаких сообщений.

Как это работает?
С помощью этого хука мы переписываем стандартную функцию login_errors() . В результате этого, в случае, когда введены неправильный логин или пароль, никакой информации, объясняющей ситуацию не появится — то, что нам нужно.

3. Принудительное использование SSL

В чём проблема?
Если вы хотите, чтобы передаваемая вами информация была защищена, вам необходимо использовать SSL—протокол, обеспечивающий целостность и конфиденциальность обмена данными. В Wordpress’e это сделать проще простого.

Что делаем?
Прежде всего узнаём, есть ли возможность у вашего провайдера использовать SSL. Если да, то открываем файл wp-config.php (обитающий в корне сайта) и добавляем следующую строку:

Как это работает?
Всё просто. Wordpress использует множество констант и FORCE_SSL_ADMIN всего лишь одна из них. Эта константа включает принудительное использование SSL при заходе в панель администратора.

4. Используем .htaccess для защиты файла wp-config

В чём проблема?
wp-config.php содержит все данные, необходимые для подключения к серверу MySQL и базе данных. Защита этого файла – одна из самых главных задач.

Что делаем?
Находим файл .htaccess в корне нашего сайта и добавляем следующие строки:


order allow,deny
deny from all


Как это работает?
Мы просто запрещаем доступ к этому файлу кому бы то ни было. Теперь уж точно ни один бот не сможет и близко подойти к этому файлу.

5. Скрываем версию Wordpress'a

В чём проблема?
Wordpress автоматически вставляет номер своей версии в исходный код страниц. К сожалению, не всегда удаётся вовремя обновлять движок. А это означает, что зная какая у вас версия Wordpress’a со всеми её брешами и слабыми местами, злоумышленник может очень-очень огорчить вас. Что делаем? Правильно, убираем вывод версии.

Что делаем?
Снова открываем functions.php, лежащий в папке с активной темой нашего блога (wp-content/themes/название-вашей-темы/) и добавляем туда этот код -

Как это работает?
Хуки Wordpress'a позволяют легко заменять одну функцию на другую. Именно этим мы сейчас и воспользовались – мы просто запретили вывод информации о версии нашего движка.

+ как справедливо указал пользователь rOOse, необходимо также удалить файл readme.html, находящийся в корне сайта. В нём тоже содержится информация о текущей версии Wordpress'a.

6. Баним спамеров и ботов



В чём проблема?
Надоедливые постеры и спамеры. Решение – запретить им доступ к сайту по IP. Конечно, это не защитит от спам-скриптов, постоянно меняющих прокси, но немного облегчить жизнь вполне может.

Что делаем?
Вставьте этот код в файл .htaccess. Просто поменяйте адрес 123.456.789 на IP того редиски нехорошего человека, который вас достаёт и всё — он забанен всерьёз и надолго.


order allow,deny
allow from all
deny from 123.456.789

Как это работает?
И снова нам на помощь приходит apache. Посредством файла .htaccess мы запрещаем доступ к сайтe пользователям с конкретным IP. Нужно забанить ещё кого-то? Просто добавим ещё одну строку, к примеру -

deny from 93.121.788

7. Пишем плагин для защиты от зловредных url-запросов



В чём проблема?
Хакеры и недохакеры всех родов очень часто пытаются найти слабые места при помощи всевозможных зловредных запросов. Wordpress неплохо защищён от этого, но лишняя защита никогда не повредит.

Что делаем?
Создаём новый файл под названием blockbadqueries.php и помещаем его в папку wp-content/plugins . Затем просто активируйте его в админке как любой другой плагин.

Как это работает?
Работа этого плагина проста – он проверяет все длинные запросы (более 255 символов) и наличие php-функций eval или base64 в URI. Если что-то из этого находится, браузеру пользователя отдаётся страница с ошибкой 414.

8. Личеры!

Что делаем?
И опять всемогущий apache поможет защищить нам наш трафик. Достаём в очередной раз файлик .htaccess и пишем следующее:

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

Что делаем?
Просто выполняем этот запрос к базе данных:

UPDATE wp_users SET user_login = 'Ваш новый логин' WHERE user_login = 'Admin';

UPDATE wp_posts SET post_author = 'Ваш новый логин' WHERE post_author = 'admin';

Никакой владелец сайта не захочет, чтобы траффик с его сайта уходил через редирект к неизвестным сайтам - это неинтересно как клиентам, подрывает доверие покупателей и вызывает санкции поисковых систем и антивирусов.

В данной статье я рассмотрю основные варианты встраивания вирусных редиректов.

Внимание! Удаляя редирект, Вы удаляете лишь следстствие, для того, чтобы ситуация не повторилась, Вам стоит искать причину попадания вирусов на сайт!

Кроме этого, вредоносные редиректы плохо детектируются сканерами и антивирусами, что зачастую приходится искать вручную источник зла.

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

Все что связано с Rewrite стоит проверить, куда перенаправляет.

Ниже я приведу пару вредоносных вставок - которые создают дорвеи и тысячи страниц в поиске, так называемый японский спам (сео-спам, страницы с иероглифами - тут много названий):

Если увидите что-то подобное - смело можно удалять, если сомневаетесь, какие строки можно оставить, то возьмите стандартный файл вашей CMS - там не будет находиться вирус!

Обычно редиректы прописывают для запросов с мобильных и планшетов:

android|plucker|pocket|psp|symbian|treo|vodafone|wap и другие вариации мобильных заголовков

как и для переходов с поисковых систем:

Если этот пункт не помог, то стоит обратить внимание на код страницы - порой часто редирект добавляют через Javascript

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

Обязательно проверяйте индексные файлы и папку шаблона - это излюбленные места хакеров для вирусов. Особенно тщательно пройдитесь по файлам index.php, footer.php, head.php, header.php - в последнее время популярно стало размещать сами вирусы не в них, а в виде ссылок. Поэтому внимательно проверяйте, какие файлы подгружаются посредством команд include и require.

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

К примеру, в последнее время встречаю не один сайт на джумле ( в частности на Joomla 2.5), где по пути includes/inc.class.php находится сам вирус, а в файл application.php в этой же папке вставлена следующая строка

Обычно параллельно с этим libraries/joomla/appplication находится вирус редиректа с именем joomla-app.php

не подскажите что это за папка

вот полный путь до папки

в файле .htaccess

order deny,allow
deny from all

в файле .htaccess.backup

RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond % !-f
RewriteCond % !-d
RewriteRule . /index.php [L]

order allow,deny
deny from all

в файле index.html

там пусто никаких записей нет

Подскажите пожалуйста если можно, что еще можно было бы поставить с связке с

All In One WP Security

какой нибудь сканер, если были изменения в файлах и автоматически сканировал сайт, буквально все что бы можно было бы обезопасить сайт?

Сделать такую связку чтобы они не конфликтовали между собой

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

Насчет крона это не про меня, не настолько понимаю

В любом случае спасибо что подсказали

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

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

и так на всех моих сайтах и их поддоменах.
Я точно знаю что дело не в сайтах и не моих ПК.
Дело в самих доменах. Помогите прошу люди решить эту задачу.

Читайте также:

Пожалуйста, не занимайтесь самолечением!
При симпотмах заболевания - обратитесь к врачу.