Браузер і продуктивність · Senior · Запитання 53 з 75
Чим небезпечно вставляти серверні дані в inline-скрипт ось так?
<script>
window.__STATE__ = ${JSON.stringify(state)};
</script>- ✓Правильна відповідь: Рядок, що містить
</script>, завчасно закриває тег, і решта виконується як HTML під контролем зловмисника - 2
JSON.stringifyне серіалізує вкладені об'єкти - 3Inline-скрипти не можуть оголошувати глобальні змінні
Пояснення
Екрануйте < як \u003c, коли вбудовуєте JSON в HTML, або кладіть дані в скрипт type="application/json" і розбирайте їх.