Node.js · Senior · Pytanie 27 z 75
Czym jest prototype pollution?
merge({}, JSON.parse('{"__proto__": {"isAdmin": true}}'));
({}).isAdmin; // true- ✓Poprawna odpowiedź: Atakiem, w którym dane wejściowe ustawiają właściwości na
Object.prototype(np. przez__proto__), zmieniając każdy obiekt w aplikacji - 2Dodaniem zbyt wielu metod do klasy
- 3Wyciekiem pamięci w łańcuchach prototypów
Wyjaśnienie
Zwykle przyczyną są niebezpieczne głębokie merge i settery po ścieżce. Blokuj klucze __proto__, constructor i prototype, używaj Object.create(null) albo Map i waliduj dane schematem.