Angesichts einer Zeichenfolge von JSON-Daten, wie kann ich sicher, dass die Zeichenfolge in ein JavaScript-Objekt zu machen?
Offensichtlich kann ich dies auf unsichere Weise mit etwas wie:
var obj = eval("(" + json + ')');
aber das macht mich anfällig für die JSON-Zeichenfolge, die anderen Code enthält, der sehr gefährlich erscheint, wenn man ihn einfach auswertet.
88 Stimmen
In den meisten Sprachen birgt eval ein zusätzliches Risiko. Eval lässt eine offene Tür, die von Hackern ausgenutzt werden kann. JEDOCH ist zu bedenken, dass jedes Javascript auf dem Client läuft. ERWARTEN dass sie von Hackern verändert wird. Sie können alles auswerten, was sie wollen, indem sie einfach die Konsole benutzen. Sie müssen Ihren Schutz auf der Serverseite aufbauen.
24 Stimmen
Ok, jetzt haben wir 2014 und Sie sollten niemals
eval
um eine JSON-Zeichenfolge zu parsen, da Sie Ihren Code der "Code-Injection" aussetzen würden. verwendenJSON.parse(yourString)
ではなく1 Stimmen
Sind die JSON-Daten ein Literal?
1 Stimmen
@shanechiu: Wenn Sie einen skalaren Datentyp meinen, ja, das ist er. Ist nur eine Zeichenfolge mit einem Schlüssel-Wert-Syntax in ihm.
1 Stimmen
Siehe die Dokumentation über den
parse()
Methode: w3schools.com/js/js_json_parse.asp