Проверка сайта на безопасность - это не поиск вирусов. Бесплатные антивирус-сканеры смотрят, не заражён ли сайт вредоносным кодом, и на этом останавливаются. Настоящие дыры малого бизнеса в другом: просроченный SSL-сертификат, отсутствие security-заголовков вроде HSTS и CSP, форма записи или оплаты, которая до сих пор отдаётся по http, и версия CMS, которую сайт сам показывает всем желающим. Ни один антивирус-сканер этого не находит: он смотрит не в ту сторону.

Тимур держит небольшую стоматологию: сайт с записью на приём и личным кабинетом пациента подрядчик сдал три года назад и с тех пор никто в него не заглядывал. Работает - значит не трогаем, решил Тимур, пока не прочитал новость про клинику, у которой из-за похожей формы утекла база пациентов. Разберём, что на сайте стоит проверить кроме дежурного «сайт не заражён».

Чем это отличается от проверки на вирусы

Наберите в поиске «как проверить сайт на безопасность» - и первые ссылки предложат просканировать сайт на вирусы и фишинг: антивирус-плагины, базы вредоносного кода, чёрные списки браузеров. Это нужная проверка, но узкая: она ищет код, который уже попал на сайт. Щели, через которые он попадёт туда завтра, такие сканеры не видят вообще - это другой слой, серверный, а не файловый.

У сайта Тимура с этим слоем как раз не всё в порядке, хотя антивирус его бы пропустил чистым. Сертификат подрядчик когда-то поставил вручную и не подключил автопродление, security-заголовков нет ни одного, а форма личного кабинета несколько лет отвечала и по http, и по https одновременно. Три отдельные проблемы, и ни одна не похожа на вирус.

Шифрование: не только «есть https или нет»

Бесплатный сертификат Let's Encrypt обычно перевыпускается каждые 90 дней сам, без участия владельца сайта - у большинства хостингов автопродление включено по умолчанию. Ловушка там, где его когда-то настраивали вручную: если автопродление не подключено, сертификат в какой-то момент истекает, и браузер вместо сайта показывает посетителю предупреждение о незащищённом соединении.

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

Отдельная категория риска - формы, которые собирают данные посетителя (запись на приём, оплата, личный кабинет) и при этом хоть иногда открываются по http. Здесь шифрование - не эстетика: без него данные идут по сети открытым текстом, и их можно перехватить между браузером посетителя и сервером.

Заголовки, которые сайт не отправляет

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

HSTS (Strict-Transport-Security) - говорит браузеру всегда открывать сайт по https, даже если кто-то наберёт адрес без «s». X-Content-Type-Options запрещает браузеру самому угадывать тип файла: без этого загруженная посетителем картинка теоретически может выполниться как код. X-Frame-Options и его современный аналог в составе CSP защищают от клик-джекинга - когда сайт незаметно встраивают в чужую страницу и подменяют кнопки под ним. Content-Security-Policy - самый мощный из четырёх: он перечисляет, скрипты с каких адресов вообще разрешено выполнять, и глушит чужой код, если тот всё же попал на страницу.

Сайт, который сам себя выдаёт

Ответ сервера и мета-тег generator часто сообщают, на какой именно версии CMS работает сайт - например, конкретной сборке WordPress или Bitrix. Для посетителя эта строка ничего не значит, а вот тот, кто ищет сайты для взлома, начинает именно с неё: по номеру версии сразу понятно, какая известная уязвимость сработает.

Скрыть номер версии - разумный первый шаг, но не главный: он прячет табличку «взломай меня», а не саму дыру. Настоящая защита - обновлять CMS и плагины до актуальных версий, потому что скрытая, но устаревшая версия остаётся такой же уязвимой, просто взломщик потратит на её поиск чуть больше времени.

Форма без https - не мелочь, а состав правонарушения

Форма входа или оплаты, отданная по http, - это точка, где технический недосмотр становится юридическим риском. Утечка данных клиентов или пациентов из-за такой дыры - не только удар по репутации.

Ч. 12 ст. 13.11 КоАП РФ (ред. от 04.07.2026) - отдельный состав именно за утечку: при утечке от тысячи до десяти тысяч записей штраф для организации или предпринимателя - от 3 000 000 до 5 000 000 рублей. При большем числе записей та же статья считает штраф выше, отдельными частями.

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

С чего начать

Тимуру из этой истории не нужно нанимать штат безопасников: у него две конкретные задачи. Включить автопродление сертификата в панели хостинга (у Let's Encrypt оно почти всегда там уже есть, просто не включено) и попросить того, кто обслуживает сайт, добавить четыре security-заголовка на сервере - это не переделка сайта, а несколько строк в его настройках.

Если в истории Тимура узнали свой сайт - проверьте его бесплатно. Модуль безопасности сканера смотрит именно этот слой: сертификат, заголовки, смешанный контент, утечку версии CMS и формы без шифрования.

Частые вопросы

Чем проверка на безопасность отличается от проверки на вирусы?

Антивирус-сканер ищет код, который уже попал на сайт: вредоносные скрипты, фишинговые вставки. Проверка безопасности смотрит на слой ниже - сертификат, заголовки, форму передачи данных - то, через что вредоносный код попадёт на сайт в будущем.

Нужно ли покупать платный SSL-сертификат?

Нет. Бесплатный Let's Encrypt даёт то же шифрование, что и платный сертификат, и подходит подавляющему большинству сайтов малого бизнеса. Разница в дополнительных гарантиях провайдера, а не в стойкости шифрования.

Как понять, что на сайте смешанный контент?

Браузер обычно сам показывает предупреждение или значок в адресной строке рядом с замочком. Разработчик может увидеть точный список таких ресурсов в консоли браузера (вкладка «Сеть» или «Console»).

Опасно ли, если видна версия CMS?

Сама по себе видимая версия не взламывает сайт, но упрощает поиск подходящей уязвимости для конкретной версии. Опаснее не сам факт видимости, а устаревшая версия под ней - обновление важнее, чем маскировка номера.

Что грозит за утечку данных из-за такой дыры?

Ответственность по ч. 12-14 ст. 13.11 КоАП РФ, размер зависит от количества утёкших записей. При утечке от тысячи до десяти тысяч записей штраф для организации или предпринимателя - от 3 000 000 до 5 000 000 рублей, при большем объёме - выше, по той же статье.

Можно ли проверить чужой сайт этим же способом?

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

Источники