Parsen von „entspanntem“ JSON ohne riskante Auswertung
JSON, ein weit verbreitetes Datenaustauschformat, erfordert eine strikte Syntax mit Schlüsseln in Anführungszeichen. Bei bestimmten Anwendungen kann es jedoch zu „entspanntem“ JSON mit Schlüsseln ohne Anführungszeichen kommen. Vom Parsen solcher Daten mithilfe von eval wird aufgrund von Sicherheitsrisiken abgeraten.
Böses Eval vermeiden
Eine Alternative zu eval ist ein auf regulären Ausdrücken basierender Ansatz, der den JSON vor dem Parsen bereinigt . Diese Methode scannt die JSON-Zeichenfolge und ersetzt alle nicht in Anführungszeichen gesetzten Schlüssel durch in Anführungszeichen gesetzte Schlüssel, um die Einhaltung der Standard-JSON-Syntax sicherzustellen, ohne die Sicherheit zu beeinträchtigen.
Beispielimplementierung
Um diesen Ansatz zu implementieren, Befolgen Sie diese Schritte:
<code class="javascript">var badJson = "{muh: 2}"; // Sanitize the JSON using regular expression replace var correctJson = badJson.replace(/(['"])?([a-z0-9A-Z_]+)(['"])?:/g, '"": '); // Parse the sanitized JSON using JSON.parse var obj = JSON.parse(correctJson);</code>
Fazit
Die Verwendung regulärer Ausdrücke zur Bereinigung von entspanntem JSON ermöglicht eine nahtlose Analyse und vermeidet gleichzeitig die potenziellen Sicherheitsrisiken, die mit der Auswertung verbunden sind.
Das obige ist der detaillierte Inhalt vonWie kann ich „entspanntes' JSON sicher analysieren, ohne „eval' zu verwenden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!