Node.js · Senior · Запитання 27 з 75
Що таке prototype pollution?
merge({}, JSON.parse('{"__proto__": {"isAdmin": true}}'));
({}).isAdmin; // true- ✓Правильна відповідь: Атака, у якій вхідні дані задають властивості
Object.prototype(наприклад, через__proto__) і змінюють кожен об'єкт застосунку - 2Додавання забагатьох методів у клас
- 3Витік пам'яті в ланцюжках прототипів
Пояснення
Зазвичай причина - небезпечні глибокі злиття і сеттери за шляхом. Блокуйте ключі __proto__, constructor і prototype, використовуйте Object.create(null) або Map і валідуйте дані схемою.