Heim  >  Artikel  >  Web-Frontend  >  Wie kann ich „entspanntes“ JSON analysieren, ohne Eval zu verwenden und die Sicherheit aufrechtzuerhalten?

Wie kann ich „entspanntes“ JSON analysieren, ohne Eval zu verwenden und die Sicherheit aufrechtzuerhalten?

Barbara Streisand
Barbara StreisandOriginal
2024-10-31 00:11:30660Durchsuche

How can I parse

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:

  1. JSON bereinigen:
    Verwenden Sie einen regulären Ausdruck, um die JSON-Daten nach Schlüsseln ohne Anführungszeichen zu durchsuchen. Ersetzen Sie jeden Schlüssel ohne Anführungszeichen durch sein Gegenstück in Anführungszeichen.
  2. Bewerten Sie den bereinigten JSON:
    Sobald die Daten bereinigt sind, können sie an JSON.parse übergeben werden, um sie sicher zu analysieren in ein JavaScript-Objekt.

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn