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:
var badJson = "{muh: 2}";
// Sanitize the JSON using regular expression replace
var correctJson = badJson.replace(/(['"])?([a-z0-9A-Z_] )(['"])?:/g, '"$2": ');
// Parse the sanitized JSON using JSON.parse
var obj = JSON.parse(correctJson);
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.
Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.
Copyright© 2022 湘ICP备2022001581号-3