Безопасность сайта.

Как удалить вирус с сайта? Подобные вопросы совсем не редкость среди владельцев сайтов.

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

1. Хостинг и фтп.
Все пароли на хостинг и фтп должны регулярно меняться и их никто, кроме Вас не должен знать. Требование простое для понимания, но не очень простое для выполнения. И тут дело больше в человеческом факторе. Все рассуждают примерно так: "Пока всё работает, лучше не трогать и ничего не менять.

2. Админка
Чем меньше людей имеют доступ к панели администратора, тем выше шанс, что ничего плохого не произойдет. Кроме того, крайне желательно защитить админку от попыток подобрать пароль. Для решения этой проблемы есть соответствующие плагины и компоненты. Например jSecure или Admin Tools. Однако Вы должны понимать, что это расширение должно быть получено из надежных источников и все его функции должны быть Вам абсолютно понятны. Есть более простой вариант, без установки дополнительных компонентов. Создайте в папке "administrator" файл .htaccess:

AuthUserFile "путь_до_корневой_папки_сайта/administrator/.htpasswd"
AuthName "Restricted Area"
AuthType Basic
require valid-user

после этого вам нужно создать файл .htpasswd с именем и паролем. Для этого можно использовать онлайн-сервисы. Например, http://www.htaccesstools.com/htpasswd-generator/ . Файл .htpasswd будет содержать пароль в зашифрованном виде. Сохраните этот файл в папке administrator. Если Вы все сделали правильно, то при попытке зайти в панель администратора, прежде всего появится окно для ввода имени и пароля, использованного при создании файла .htpasswd. Замечу, что данные доступа могут (и должны) отличаться от имени и пароля входа в админку.

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

4. Установка новых расширений.
Любое расширение, установленное на ваш сайт получает полный доступ к базе данных и к файлам. Оно может выполнять не только свои прямые обязанности, но и любые другие недокументированные функции - отправлять письма, показывать посетителям ненужные ссылки и рекламную информацию, предоставлять злоумышленникам доступ к вашему сайту. Поэтому десять раз подумайте, прежде чем устанавливать себе новый компонент, модуль или плагин. Желательно перед установкой проверить расширение на безопасность. Это может сделать только специалист. Причем не тот, который Вам впаривает это расширение, а независимый эксперт.

5. Установленные расширения.
Любой компонент(модуль, плагин) представляет собой потенциальную угрозу безопасности. С некоторой вероятностью, конечно. То есть, чем больше компонентов установлено, тем больше шансов, что в каком-то из них есть существенная дыра в безопасности. На многих сайтах установлены ненужные компоненты просто "из любви к искусству". Кто-то когда-то искал нужный компонент и перепробовал десятки ненужных. Удалите все компоненты, назначение которых вам непонятно или плохо понятно и которые не относятся к первоначальной установке joomla.

6. Резервное копирование.
Регулярно нужно производить резервное копирование всего сайта. Для этого можно использовать компонент Akeeba Backup. Ежедневные резервные копии имеет смысл хранить неделю, ежемесячные год и ежегодные всегда. То есть в любой момент времени, у вас должны быть резервные копии на 7 последних дней, 12 ежемесячных копий и ежегодные копии. И храниться они должны в двух территориально разнесенных друг от друга местах. Например, на хостинге и на вашем домашнем компьютере.

Выполняя все эти правила, Вы существенно обезопасите свой сайт от вредоносного кода и доступа злоумышленников.