JavaScript · Senior · Pytanie 34 z 75
Dlaczego eval i new Function są zwykle zakazane polityką bezpieczeństwa?
- ✓Poprawna odpowiedź: Wykonują stringi jako kod - droga do XSS
- 2Działają tylko w trybie ścisłym i psują stare przeglądarki
- 3Zostały usunięte w ECMAScript 2020 i nie są obsługiwane
Wyjaśnienie
Jeśli do stringa trafią dane użytkownika, atakujący uruchomi własny kod. CSP domyślnie blokuje takie wywołania. Ponadto eval utrudnia optymalizacje silnika. Prawie zawsze jest alternatywa: JSON.parse, tablica funkcji, Function z kodem znanym w czasie budowania.