Так как же быть, чтобы не потерять весь сайт после чьей-то пакости ? При взломе злоумышленники загружают скрипт, который заражает все файлы сайта. Вычистить это ооочень сложно и долго по времени:(
Самое главное, у вас должны быть под рукой актуальные резервные копии сайта. Причем, копии должны быть хотя бы за пару месяцев. Частоту создания резервной копии нужно оценивать по тому, на сколько быстро и часто у вас идет обновление информации на сайте, но хотя бы один раз в неделю стоит сделать копии и хранить копии за 2 месяца. Таким образом, у вас под рукой всегда будет 8 копий. Скорей всего 6 из них не понадобятся, а вот одна из двух последних спасет вам очень много нервов и финансов.
Именно благодаря наличию копии трехдневной давности, созданной средствами хостинга, в течение часа удалось восстановить сайт после падения.
Но после восстановления данного сайта было принято решение пойти дальше:
- Самым первым пунктом было, конечно же, установка всех актуальных обновлений (и переход с php 7.4 на 8.1)
- Дальше пришлось вычищать устаревший код под соответствие с php 8.1
- Следующим шагом было помещение всего кода сайта в отслеживание на уровне GIT - это позволяет проверять наличие/отсутствие изменений и вовремя бить тревогу, если что-то пошло не так. Ну и при появлении нежелательных файлов можно быстро откатить все сделанные изменения. Это важно! Помещение в репозиторий всех файлов (без исключения файлов ядра битрикса, как советуют все рекомендации по созданию gitignore для сайтов на базе 1С-Битрикс) сделано именно для того, чтобы отслеживать все изменения, в т.ч. и изменения в ядро сайта. Конечно, в этом есть и минус: установка обновлений приведет к большому количеству изменений именно в ядре. Но, если проверять актуальность обновлений каждые 2-3 дня, то объем изменений не будет на столько большим.
- Далее гит отправляем в сторонний репозиторий, а на сервере переключаемся на отдельную ветку, на которой сайт будет продолжать работать и которую мы в дальнейшем будем сравнивать с основной веткой.
Таким образом, мы получаем максимальный резерв данных сайта и минимизируем возможности злоумышленников внедрить сторонний код, а в случае такого внедрения - достаточно быстро откатить изменения до "чистого" состояния.
Конечно, кто-то скажет, что лучше довериться толковому системному администратору, который будет постоянно следить за здоровьем сервера, будет отслеживать попытки взлома и т.п., но практика показывает, что толкового сисадмина найти можно, но чаще всего стоимость его услуг не покрывается доходом от сайта.
Как же обойтись без сисадмина, но максимально защитить себя от последствий взлома ?
- Делайте актуальные бекапы сайта так часто, как можете и храните побольше копий на разных носителях (а еще лучше в нескольких облачных сервисах)
- Делайте бекапы средствами вашего сайта с отправкой их в облако (только пароль не забудьте от бекапа - без него вы не сможете восстановить сайт)
- Делайте бекапы!!!
- Поддерживайте актуальность обновлений. Если есть у вас какие-то сторонние модули - для них тоже нужно поддерживать актуальность обновлений.
- Проверяйте каждый день ключевой функционал сайта, чтобы ничего лишнего не появилось!

