Parsen von „entspanntem“ JSON ohne Rückgriff auf Eval
Um ein benutzerfreundlicheres JSON-Parsing-Erlebnis zu ermöglichen, greifen Entwickler oft darauf zurück zur berüchtigten Auswertungsfunktion. Diese Praxis wirft jedoch Bedenken hinsichtlich Sicherheitslücken auf. Dieser Artikel untersucht einen alternativen Ansatz zum Parsen von „entspanntem“ JSON ohne Kompromisse bei der Sicherheit und bietet eine Lösung, die sowohl Komfort- als auch Sicherheitsanforderungen erfüllt.
Das Problem:
Der Standard Die JSON-Parsing-Methode JSON.parse hält sich strikt an die korrekte JSON-Syntax und erfordert, dass Schlüssel in Anführungszeichen gesetzt werden. In der Praxis stoßen Entwickler jedoch häufig auf JSON-Daten mit „entspannter“ Syntax, bei denen Schlüssel möglicherweise nicht in Anführungszeichen gesetzt werden. Dies stellt eine Herausforderung für das sichere Parsen solcher Daten dar.
Die Lösung:
Anstelle der Verwendung von eval, bei der Code wahllos ausgeführt wird, besteht eine sicherere und gleichermaßen effektive Methode darin, a zu verwenden regulärer Ausdruck zum Bereinigen der JSON-Daten. Bei dieser Technik werden nicht in Anführungszeichen gesetzte Schlüssel durch korrekt in Anführungszeichen gesetzte Entsprechungen ersetzt, sodass die Daten erfolgreich von JSON.parse analysiert werden können.
Schritt-für-Schritt-Prozess:
Codebeispiel:
Betrachten Sie den folgenden „entspannten“ JSON:
{muh: 2}
Um diese Daten zu analysieren unter Verwendung des bereinigten Ansatzes:
var badJson = "{muh: 2}"; var correctJson = badJson.replace(/(['"])?([a-z0-9A-Z_]+)(['"])?:/g, '"": '); var resultObject = JSON.parse(correctJson);
Nach dem Bereinigungsprozess enthält die Variable „correctJson“ gültiges JSON:
{"muh": 2}
Das kann dann sicher von JSON.parse analysiert werden, was zu dem Ergebnis führt gewünschtes JavaScript-Objekt.
Schlussfolgerung:
Durch die Übernahme dieser Bereinigungstechnik können Entwickler „entspannte“ JSON-Daten sicher analysieren, ohne auf Evaluierung zurückgreifen zu müssen. Dieser Ansatz bietet eine praktische Lösung, die sowohl die Datenintegrität als auch die Einhaltung sicherer Programmierpraktiken gewährleistet.
Das obige ist der detaillierte Inhalt vonWie kann ich „entspanntes' JSON analysieren, ohne Eval zu verwenden und die Sicherheit aufrechtzuerhalten?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!