Безопасность сайта для владельца: пять дыр, через которые ломают, и проверка за полчаса
Сайты малого бизнеса ломают скрипты, а не хакеры: старые версии, пароли, формы без проверки, загрузка файлов, права на сервере. Что проверить самому и что делать, если уже взломали.
Сайты малого бизнеса ломают не хакеры-одиночки, а скрипты, которые круглосуточно перебирают адреса и ищут известные дыры: старый плагин, пароль «admin/admin», форму без защиты. Такой взлом ничего не стоит злоумышленнику, а владельцу обходится в рассылку спама с его домена, чужую рекламу на страницах, утечку заявок и штраф по 152-ФЗ. Ниже — что можно проверить самому и что стоит потребовать от подрядчика.
Пять вещей, которые ломают чаще всего
1. Устаревшие версии. CMS, плагины, PHP, библиотеки. У каждой найденной уязвимости есть публичное описание, и через день после публикации её уже ищут по всему интернету автоматически. Правило: обновления ставятся в течение недели после выхода, критические — в день выхода.
2. Пароли и доступы. Одинаковый пароль на хостинг, админку и почту; доступ подрядчика, который давно не работает; админка по адресу /admin с формой входа, открытой всему интернету. Меняйте пароли при смене подрядчика, держите админку на неочевидном адресе, включите двухфакторный вход там, где он есть.
3. Формы без проверки. Поле поиска или комментария, значение которого подставляется в запрос к базе как есть, — классическая SQL-инъекция. Она до сих пор встречается в самописных сайтах и старых модулях. Проверка простая: подставьте в поле одинарную кавычку — если сайт выдаёт ошибку базы, дыра есть.
4. Загрузка файлов. Форма, которая принимает «любой файл», принимает и скрипт, который потом запускается на сервере. Загрузку ограничивают типами, переименовывают файлы и кладут туда, где выполнение запрещено.
5. Права на сервере. Сайт работает от пользователя, который может писать в свои же файлы кода. Взломав одну форму, скрипт переписывает весь сайт. Код должен быть доступен на запись только при выкатке, а сайту — только папки загрузок и кэша.
Что проверить самому за полчаса
- Открывается ли сайт по http без перенаправления на https.
- Открывается ли админка по /admin, /wp-admin, /bitrix — и есть ли там ограничение попыток входа.
- Какая версия PHP: если ниже 8.1, она уже без обновлений безопасности.
- Есть ли на страницах чужие ссылки и скрипты — посмотрите исходный код главной, поищите «script src» на незнакомые домены.
- Не рассылает ли ваш домен спам: проверьте домен в любом сервисе проверки чёрных списков.
- Есть ли защитные заголовки — HSTS, X-Frame-Options, X-Content-Type-Options: их покажет наша проверка сайта в блоке технических требований.
Что делать, если уже взломали
Не «почистить», а восстановить из копии, сделанной до взлома, и сразу закрыть дыру, через которую вошли — иначе через день всё повторится. Затем сменить все пароли: хостинг, база, админка, почта, FTP. Проверить, не появились ли лишние пользователи в админке и лишние файлы в папках сайта. Если утекли данные клиентов — уведомить Роскомнадзор в течение 24 часов: за молчание штраф отдельный и заметно больше, чем за саму утечку.
Что мы делаем на своих сайтах
Параметры вместо склейки строк в запросах, проверка типов загружаемых файлов, права на сервере «код только на чтение», админка на неочевидном адресе с ограничением попыток и двухфакторным входом, защитные заголовки в конфигурации сервера, обновления по расписанию и ежедневные копии на отдельном сервере. Это не экзотика — это тот минимум, который отсеивает автоматические атаки, а именно они составляют почти всё, что прилетает на сайт малого бизнеса.
Нужен сайт, который сделан правильно?
Соберём сайт под задачу, с документами по 152-ФЗ, на российском хостинге и с поддержкой после запуска.