Heim > Web-Frontend > js-Tutorial > Hauptteil

Wie kann ich entspanntes JSON sicher analysieren, ohne „eval' zu verwenden?

Mary-Kate Olsen
Freigeben: 2024-10-31 05:44:02
Original
583 Leute haben es durchsucht

How to Safely Parse Relaxed JSON Without Using `eval`?

Sicheres Parsen von entspanntem JSON

Das Parsen von „relaxtem“ JSON ohne Rückgriff auf die potenziell gefährliche Auswertungsfunktion ist eine häufige Herausforderung bei der Arbeit mit JSON-Daten Dies entspricht möglicherweise nicht der strengen JSON-Syntax. Während JSON.parse() erfordert, dass Schlüssel in Anführungszeichen gesetzt werden, erfordern einige Szenarien das Parsen von JSON mit nicht in Anführungszeichen gesetzten Schlüsseln aus Bequemlichkeits- oder Legacy-Gründen.

Ein Ansatz für den sicheren Umgang mit „entspanntem“ JSON besteht darin, das JSON vor dem Parsen zu bereinigen. Mithilfe einer Ersetzung durch reguläre Ausdrücke können Sie nicht in Anführungszeichen gesetzte Schlüssel in solche umwandeln, während der Rest der JSON-Struktur erhalten bleibt.

var badJson = "{muh: 2}";
var correctJson = badJson.replace(/(['"])?([a-z0-9A-Z_]+)(['"])?:/g, '"": ');
Nach dem Login kopieren

In diesem Beispiel sucht der reguläre Ausdruck nach nicht in Anführungszeichen gesetzten Schlüsseln, die optional von einfachen oder doppelten Anführungszeichen umgeben sind , gefolgt von einem Doppelpunkt. Anschließend werden die Übereinstimmungen durch die korrekte Schlüsselsyntax in Anführungszeichen ersetzt, um sicherzustellen, dass die JSON-Zeichenfolge nun dem richtigen JSON-Format entspricht.

Sobald die JSON-Zeichenfolge bereinigt ist, können Sie sie sicher mit JSON.parse():

JSON.parse(correctJson);
Nach dem Login kopieren
Mit dieser Methode können Sie „entspanntes“ JSON mit Schlüsseln ohne Anführungszeichen analysieren und gleichzeitig die Sicherheit und Zuverlässigkeit der JSON-Analyse beibehalten, ohne dass benutzerdefinierte Parser oder unsichere Techniken wie eval erforderlich 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!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage