SHIFT >_CODE
← Журнал

Основы безопасности веб-приложений, которые стоит знать каждому владельцу

Чтобы задавать правильные вопросы, не нужно быть специалистом по безопасности. Главные принципы, которые защищают сайт или веб-приложение и данные его пользователей.

Большинство инцидентов безопасности в небольших и средних проектах вызвано не изощрёнными атаками, а простыми пробелами: забытым аккаунтом администратора, устаревшим плагином, случайно опубликованным секретным ключом. Знание основ помогает владельцу задавать правильные вопросы и проверять, что на них ответили.

Доступ проверяется на сервере

Скрытая кнопка в интерфейсе ничего не защищает. Каждое действие - просмотр, изменение, удаление данных - должно проверяться на сервере: кто этот пользователь и имеет ли он на это право? В системах с базой данных правила доступа на уровне данных добавляют ещё один слой защиты, чтобы даже ошибка в коде не открыла чужие данные.

С паролями и секретами обращаются бережно

Пароли пользователей никогда не хранятся в читаемом виде; проверенные сервисы и библиотеки аутентификации делают это правильно. API-ключи, пароли от базы данных и токены хранятся в защищённой конфигурации на сервере - никогда в коде сайта, который попадает в браузер, и никогда в общих документах или чатах. Администраторы используют надёжные уникальные пароли и, где возможно, двухфакторную аутентификацию.

Всё регулярно обновляется

Фреймворки, библиотеки, плагины и операционная система сервера регулярно получают исправления безопасности. Проект, который не обновлялся год, скорее всего содержит известные уязвимости. Закладывайте регулярные обновления в поддержку, а не оставляйте их на случай аварии.

Данные шифруются при передаче

Весь сайт работает по HTTPS, поэтому данные между пользователем и сервером нельзя прочитать или подменить по пути. Cookie с информацией о сессии помечаются как защищённые и недоступные скриптам. Конфиденциальные файлы не лежат в публично доступных папках.

Входящим данным не доверяют

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

Проблемы видны

Журналы важных действий, оповещения о повторяющихся неудачных входах и регулярная проверка того, у кого есть права администратора, позволяют заметить проблему рано. Вместе с проверенными резервными копиями это превращает потенциальную катастрофу в управляемый инцидент.

Коротко

Проверяйте доступ на сервере, защищайте пароли и секреты, обновляйте ПО, используйте HTTPS везде, проверяйте все входящие данные и следите за журналами. Эти основы предотвращают большинство реальных инцидентов.