JavaScript · Senior · Pytanie 33 z 75

Co jest niebezpiecznego w funkcji deep merge zastosowanej do JSON od użytkownika?

merge({}, JSON.parse('{"__proto__": {"isAdmin": true}}'));

Wyjaśnienie

Naiwny merge wykona target.__proto__.isAdmin = true, a ({}).isAdmin stanie się true w całej aplikacji. Ochrona: pomijać __proto__, constructor, prototype, używać Object.create(null) lub Map jako słowników, walidować wejście schematem.

Do poczytania

Błąd w pytaniu

JavaScript · Senior · pytanie 33

Sprawdź się

Rozwiąż test JavaScript · Senior: pytania i odpowiedzi są tasowane, a na końcu czeka przegląd błędów.

Rozwiąż ten test