Bagaimanakah saya boleh menghuraikan JSON \'santai\' tanpa menggunakan eval dan mengekalkan keselamatan?

Barbara Streisand
Lepaskan: 2024-10-31 00:11:30
asal
652 orang telah melayarinya

How can I parse

Menghuraikan JSON "Relaxed" tanpa Mengubah Eval

Dalam usaha untuk memudahkan pengalaman penghuraian JSON yang lebih mesra pengguna, pembangun sering menggunakan kepada fungsi eval yang terkenal. Walau bagaimanapun, amalan ini menimbulkan kebimbangan tentang kelemahan keselamatan. Artikel ini meneroka pendekatan alternatif untuk menghuraikan JSON "santai" tanpa menjejaskan keselamatan, menyediakan penyelesaian yang memenuhi keperluan kemudahan dan keselamatan.

Isu:

Standard Kaedah penghuraian JSON, JSON.parse, mematuhi sintaks JSON yang betul, memerlukan kunci untuk disertakan dalam petikan. Walau bagaimanapun, dalam amalan, pembangun sering menemui data JSON dengan sintaks "santai", di mana kunci mungkin tidak dipetik. Ini menimbulkan cabaran untuk menghuraikan data sedemikian dengan selamat.

Penyelesaian:

Daripada menggunakan eval, yang melaksanakan kod secara sembarangan, kaedah yang lebih selamat dan sama berkesan melibatkan penggunaan ungkapan biasa untuk membersihkan data JSON. Teknik ini melibatkan penggantian kunci yang tidak disebut dengan padanan yang disebut dengan betul, membolehkan data berjaya dihuraikan oleh JSON.parse.

Proses Langkah demi Langkah:

  1. Sanitasi JSON:
    Gunakan ungkapan biasa untuk mengimbas data JSON untuk kunci yang tidak disebut. Untuk setiap kunci yang tidak disebut, gantikannya dengan rakan sejawatannya yang disebut.
  2. Nilai JSON yang Disanitasi:
    Setelah data dibersihkan, ia boleh dihantar ke JSON.parse untuk menghuraikannya dengan selamat ke dalam objek JavaScript.

Contoh Kod:

Pertimbangkan JSON "santai" berikut:

{muh: 2}
Salin selepas log masuk

Untuk menghuraikan data ini menggunakan pendekatan disanitasi:

var badJson = "{muh: 2}";
var correctJson = badJson.replace(/(['"])?([a-z0-9A-Z_]+)(['"])?:/g, '"": ');
var resultObject = JSON.parse(correctJson);
Salin selepas log masuk

Selepas proses sanitasi, pembolehubahJson yang betul akan mengandungi JSON yang sah:

{"muh": 2}
Salin selepas log masuk

Yang kemudiannya boleh dihuraikan dengan selamat oleh JSON.parse, menghasilkan objek JavaScript yang diingini.

Kesimpulan:

Dengan menggunakan teknik sanitasi ini, pembangun boleh menghuraikan data JSON "santai" dengan selamat tanpa menggunakan eval. Pendekatan ini menyediakan penyelesaian praktikal yang memastikan kedua-dua integriti data dan pematuhan terhadap amalan pengaturcaraan yang selamat.

Atas ialah kandungan terperinci Bagaimanakah saya boleh menghuraikan JSON \'santai\' tanpa menggunakan eval dan mengekalkan keselamatan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!