JavaScript · Senior · Запитання 34 з 75
Чому eval і new Function зазвичай забороняють політикою безпеки?
- ✓Правильна відповідь: Вони виконують рядки як код - це шлях до XSS
- 2Вони працюють лише в строгому режимі й ламають старі браузери
- 3Їх видалено зі стандарту ECMAScript 2020, і вони не підтримуються
Пояснення
Якщо в рядок потраплять користувацькі дані, атакувальник виконає свій код. CSP за замовчуванням блокує такі виклики. Крім того, eval заважає оптимізаціям рушія. Майже завжди є альтернатива: JSON.parse, таблиця функцій, Function із заздалегідь відомим кодом під час збирання.