Русский
Открыть в Telegram

Пост Чеклист безопасности React приложения

13 августа 2024
З
Заметки про React
Ссылка
нажмите — покажем
Чеклист безопасности React приложения Обзор популярных уязвимостей фронтенд приложений в контексте React: 🔴Cross-Site Scripting (XSS). Атака заключающаяся в внедрении вредоносного кода, который вызывается на странице у пользователя. Связано это с тем, что выводимые данные не обрабатывается должным образом. React хорошо защищен от XSS атак, однако все равно уязвим из-за неправильного использования функций, сторонних библиотек или нестандартных реализаций. При использовании dangerouslySetInnerHTML санитизируйте передаваемые данные, например, через библиотеку dompurify: import DOMPurify from 'dompurify'; const comment = '<script>alert("XSS Attack!")</script>Great article!'; const UserComments = () => { return ( <div> <li dangerouslySetInnerHTML={{ __html: DOMPurify.sanitize(comment) }} /> </div> ); }; 🔴Content Security Policy (CSP) заголовок. Использование CSP заголовка защитит от большинства веб-атак, включая XSS. CSP заголовок позволяет указать какие ресурсы могут загружаться и исполняться браузером. Позволяет работать в Report-Only режиме, позволяя только собирать обнаруженные проблемы, не применяя правила. Пример: header Content-Security-Policy "script-src 'self' 'unsafe-inline' https://maps.googleapis.com https://www.googletagmanager.com;" 🔴Cross-Site Request Forgery (CSRF). При CSRF атаке злоумышленник обманом заставляет пользователя отправить запрос, который он не собирался делать. Обычно это делается путем внедрения вредоносных запросов на сайт или e-mail, с которым взаимодействует пользователь. Для противодействия CSRF атаке используются токены, которые генерируются на странице и передаются вместе с запросом. Пример: function CSRFProtectedForm() { const [csrfToken, setCsrfToken] = useState(''); {/* Запрос CSRF токена */} return ( <form onSubmit={submitForm}> <input type="hidden" name="_csrf" value={csrfToken} /> {/* --snip-- */} <button type="submit">Submit</button> </form> ); } 🔴Переменные окружения. Используйте env переменные и не храните их значения в коде в репозитории. https://www.trevorlasn.com/blog/frontend-security-checklist
89 · 3.4K ·

Рядом в ленте

ЗЗаметки про ReactГибкая предварительная загрузка данных в SPA При создании большого SPA одним из важных пунктов оптимизации становится предварительная загрузка данных. Например,ЗЗаметки про ReactРефакторинг запутанного компонента В своем блоге Алекс Кондов рассказал, как бы он проводил рефакторинг запутанного компонента формы. Кратко, о чем он пишет: -
это сообщение
ЗЗаметки про ReactГлубокое погружение в формы в современном React В своем блоге Кент С. Доддс рассказал, как использовать новые хуки useFormStatus, useActionState и useOptimisticЗЗаметки про ReactСоздание стейт менеджера за 40 строк Пример простого стейт менеджера для React, работающего через хук useSyncExternalStore. Хук useSyncExternalStore появился в
ЗЗаметки про ReactЗаметки про React@ru_react_notes · канал · Технологии
3 412подписчиков491постов в индексе
Лента площадки Открыть в Telegram

Открытая публичная лента из поискового индекса ChatCrawler — «Google по публичному Telegram»; обновляется по мере обхода площадки. Время — UTC.

Только публичный контент, официальный API Telegram. О проекте · Вопросы · Границы индекса · Убрать страницу из выдачи · Каталог · Поиск · Как мы считаем