JavaScript · Senior · Frage 33 von 75

Was ist gefährlich an einer Deep-Merge-Funktion, die auf JSON vom Nutzer angewendet wird?

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

Richtige Antwort: Prototype Pollution: die Eigenschaft landet in Object.prototype

Erklärung

Ein naiver Merge weist target.__proto__.isAdmin = true zu, und ({}).isAdmin wird in der ganzen App true. Schutz: __proto__, constructor, prototype überspringen, für Wörterbücher Object.create(null) oder Map nutzen, Eingaben per Schema validieren.

Zum Weiterlesen

Fehler in der Frage

JavaScript · Senior · Frage 33

Teste dich selbst

Mach den Test JavaScript · Senior: Fragen und Antworten werden gemischt, und am Ende wartet eine Übersicht der Fehler.

Diesen Test machen