Сканирование начинается сразу
Новый домен попадает в публичные реестры за минуты. Боты уже перебирают типовые пути: /wp-login.php, /admin, /.env. Без базовой защиты вы в открытом доступе.
Блог · Основы безопасности
Пять принципов, которые спасут ваш веб-проект от типовых атак. Без паники и без «прочитайте RFC 2119» — только то, что реально работает в боевых условиях.
Автор: Дмитрий Соколов, инженер по безопасности Linklet · Обновлено 12 марта 2025 · Чтение 7 минут
Мы разберём пять блоков: зачем вообще думать о безопасности ещё до запуска, какие ошибки совершают 9 из 10 новичков, что Linklet делает «под капотом» за вас, готовый чек-лист перед релизом и куда копать дальше.
Раздел 01
Пока ваш проект маленький, кажется, что «до меня не доиграются». На практике атаки автоматизированы: боты обходят новые домены в первые 20–40 минут после публикации.
Новый домен попадает в публичные реестры за минуты. Боты уже перебирают типовые пути: /wp-login.php, /admin, /.env. Без базовой защиты вы в открытом доступе.
Средний час простоя малого e-commerce стоит 3 500–12 000 ₽. Утечка базы клиентов — это ещё и штрафы по 152-ФЗ, потеря доверия и недели на восстановление. Базовая настройка занимает один вечер.
Покупатели и подписчики читают адресную строку. Если браузер показывает «Сайт не защищён» — до 60% пользователей уходят без действия. SSL и корректные заголовки — это часть пользовательского опыта.
Раздел 02
Мы собрали семь типовых просчётов, которые встречаются в каждом третьем проекте, запущенном за первые полгода.
Самая популярная пара в логинах CMS. Боты перебирают её за 30 секунд. Минимум 16 символов, генератор, менеджер паролей.
MySQL с bind-address = 0.0.0.0 и без пароля — это приглашение. Доступ к БД должен быть только с внутреннего контура.
API-ключи, токены и пароли в .env в репозитории. Один push — и ключи живы в истории коммитов.
Отсутствие Content-Security-Policy, X-Content-Type-Options и Strict-Transport-Security открывает XSS и MIME-sniffing.
Критические CVE в npm-пакетах и плагинах часто остаются месяцами. Автопатчинг и регулярные сканы снижают риск на порядок.
«У нас же облако» — не про бэкапы. Если сервер стёрли — данные на диске сервера тоже. Нужны снапшоты и внешнее хранение.
Утренний кофе, утерянный телефон, фишинговое письмо — и аккаунт администратора у злоумышленника. Двухфакторность закрывает 99% атак на учётные записи.
Вернуть полный стек-трейс клиенту — это подарить карту приложения. Логи должны уходить в панель, а не в браузер.
Раздел 03
Мы не просим вас собирать инфраструктуру с нуля. Ниже — то, что уже включено в любой тариф Linklet, без доплат.
Linklet держит инфраструктуру, а вы получаете понятную панель с индикаторами. Ниже — ключевые механизмы, которые работают по умолчанию.
Раздел 04
Десять пунктов, которые стоит проверить за 20 минут перед тем, как открыть проект для внешнего мира. Печатайте, сохраняйте, прогоняйте перед каждым релизом.
Пароли от 16 символов, уникальные для каждого сервиса, включённая двухфакторность на админ-панелях, Git-хостинге и облаке.
API-ключи, токены, пароли БД — только в переменных окружения. Проверьте историю коммитов на наличие случайно закоммиченных секретов.
Обновите npm-пакеты, плагины и фреймворк. Прогоните npm audit или аналог, закройте критические CVE.
CSP, X-Content-Type-Options: nosniff, Referrer-Policy: strict-origin-when-cross-origin, Strict-Transport-Security. Проверьте через securityheaders.com.
База не слушает наружу. Подключение только с внутреннего IP или через VPN. Отдельная учётная запись для приложения с минимальными привилегиями.
.env, .git, .htaccess не доступны по URL. В Nginx/Apache — явные deny для служебных директорий и файлов конфигурации.
Все ошибки уходят в панель, а не в браузер. Настроены алерты на всплеск 5xx, подозрительные IP и попытки входа с неверным паролем.
Ежедневный полный + ежечасный инкрементальный. Последний раз восстановите бэкап в тестовой среде и убедитесь, что всё на месте.
Прогоните OWASP ZAP или Burp Suite в пассивном режиме. Особое внимание — полям ввода, URL-параметрам и заголовкам.
Кто отвечает, куда звонить, как изолировать проект, как восстановить из бэкапа. Напишите на одной странице — и положите в заметки.
Раздел 05
Безопасность — это не «выучил один раз». Вот что мы читаем и на чём держимся каждый месяц.
Начните с одного ресурса в неделю — этого достаточно, чтобы за полгода выйти на уверенный уровень.
Применить на практике
30 дней без карты. Встроенная защита, ежечасные бэкапы и панель с индикаторами безопасности — уже в первом деплое. Прогоните свой чек-лист и сравните.
Частые вопросы