OWASP: методы безопасности фронтенда

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

Основные способы атак для фронденда есть в статье.

Следить за подключаемыми пакетами и библиотеками.

Довольно частой проблемой стало появление атак через подключаемые пакеты NPM или используя CDN с библиотеками. Как правило такие вредные скрипты пытаются как можно больше нанести ущерба от показа простой рекламы до удаления всей ОС. (в случае установки глобальных пакетов с доступом через рут).

Но если вы установили проверенную и надежную библиотеку/фреймворк/, это не значит, что вы не получите проблемы с безопасностью. Любая вставка исполняемого кода в формате HTML приведет к уязвимости и поэтому старайтесь не использовать такие вставки. Как правило, если вы используете ESLint, то он предупредит о возможных проблемах в нативном JS, так и в Vue.js, React.js и др.

Установка заголовков безопасности

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

CSP (Content-Security-Policy)

Устанавливается в качестве HTTP header заголовка и в нем можно перечислить, откуда можно взять контент для исполнения на вашей странице. Например туда можно добавить ваши CDN или иные библиотеки которым вы доверяете.

// default-src для перечисления разрешённых источников по умолчанию
// self - указывает на текущий домен
Content-Security-Policy: default-src 'self' *.trusted.ru

Кроме всего, заголовок обладает и другими полезными фишками, поэтому посмотрите статью на хабре.

HSTS (Strict Transport Security)

Это заголовок для политики безопасности который запрещает использовать сайт без HTTPS. В заголовке устанавливается age параметр и затем, браузер все HTTP-запросы использует через HTTPS.

Strict-Transport-Security: max-age=30534000;

SOP (Same origin policy)

Политика единого источника — для использования ресурсов только со своего домена, при чем исключительно по uri схеме: http, домен и порт. Флаг запретит использовать с поддоменов или другому http соединению.

httpOnly

Чтобы обезопасить хранимые данные в куках, их можно закрыть флагом httpOnly и куки не будут доступны на стороне клиента (запись/чтение). Например, там можно хранить токены типа JWT. Второй способ безопасного хранение это в памяти браузера, пока страница не будет перезагружена, что конечно не круто для пользователей :).

Заключение

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

Читайте также
Что значат стабильные версии Firefox 119, Safari 17.1, Chrome 118 и Chrome 119 для веб-платформы
Что значат стабильные версии Firefox 119, Safari 17.1, Chrome 118 и Chrome 119 для веб-платформы
Что значат стабильные версии Firefox 119, Safari 17.1, Chrome 118 и Chrome 119 для веб-платформы

Браузеры Firefox 119, Safari 17.1, Chrome 118 и Chrome 119 стали стабильными. В этом обзоре рассказываем, что это значит для веб-платформы.

Технологические прогнозы на 2024 год: ИИ, Mojo и блокчейн
Технологические прогнозы на 2024 год: ИИ, Mojo и блокчейн
Технологические прогнозы на 2024 год: ИИ, Mojo и блокчейн

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

SolidStart, новости последних обновлений
SolidStart, новости последних обновлений
SolidStart, новости последних обновлений

В последнее время вышло две минорных версии 0.5.0 и 0.6.0 SolidStart. Библиотека идет к версии 1.0 и выпускает много полезных фич.

Локальные модели для IDE JetBrains
Локальные модели для IDE JetBrains
Локальные модели для IDE JetBrains

JetBrains представляет новую функцию для дополнения кода в соей IDE, работающую на AI. Технология позволит пользоваться подсказками локально, особенно актуально для сфер с высокими рисками и требований к безопасности, такими как — финансы, здравоохранение.