';\nreturn
{userInput}
; // Безопасно - отобразится как текст\n\nДля случаев, когда нужно вставить HTML (dangerouslySetInnerHTML), React требует явного указания:\n\n
\n\nНо даже в этом случае современные браузеры имеют встроенную защиту от выполнения скриптов через innerHTML. Лучше избегать dangerouslySetInnerHTML и использовать санитизацию библиотеками типа DOMPurify.","url":"https://youngjunior.ru/javascript/interviews/17378"}}}
Встречается на 2% собеседований по JavaScript

Как React защищает от XSS

React автоматически экранирует все данные, вставленные в JSX перед рендерингом. Это означает, что любые строки, переданные в фигурных скобках, будут преобразованы в текст, а не интерпретированы как HTML.

jsx
const userInput = '<script>alert("XSS")</script>';
return <div>{userInput}</div>; // Безопасно - отобразится как текст

Для случаев, когда нужно вставить HTML (dangerouslySetInnerHTML), React требует явного указания:

jsx
<div dangerouslySetInnerHTML={{__html: userControlledHtml}} />

Но даже в этом случае современные браузеры имеют встроенную защиту от выполнения скриптов через innerHTML. Лучше избегать dangerouslySetInnerHTML и использовать санитизацию библиотеками типа DOMPurify.

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы