Adakah JSON Luaran Terdedah Kerana Json.Net TypeNameHandling Auto?
Dalam bidang aplikasi web, pengendalian permintaan JSON adalah amalan biasa . Walau bagaimanapun, kebimbangan telah dibangkitkan mengenai potensi ancaman yang ditimbulkan oleh penyahserilangan jenis automatik menggunakan rangka kerja JSON seperti Json.Net.
Memahami Masalah
Apabila muatan JSON dinyahsiri tanpa pengesahan yang mencukupi, terutamanya apabila sifat dinamik atau jenis objek hadir, penyerang menjadi mungkin untuk membekalkan muatan yang mengandungi kunci "$type". Kunci ini boleh menentukan alat serangan, yang apabila dinyahsiri, boleh melaksanakan kod arbitrari pada sistem penerima.
TypeNameHandling and Vulnerability
Json.Net menyediakan tetapan TypeNameHandling yang menentukan cara muatan JSON yang mengandungi kunci "$type". dikendalikan:
Secara lalai, tetapan ini selalunya dibiarkan sebagai "Auto", yang menimbulkan kebimbangan tentang potensi kelemahan.
Pendekatan Selamat dengan TypeNameHandling.Auto
Dalam senario khusus di mana JSON yang masuk hanya dinyahsiri kepada jenis tertentu ( MyObject) dan tiada objek atau ahli ditaip dinamik dalam MyObject atau subobjeknya, ia adalah tidak mungkin kelemahan wujud.
Walau bagaimanapun, adalah penting untuk ambil perhatian bahawa ini bukan jaminan keselamatan. Jenis yang tidak dijangka atau koleksi yang mengandungi item yang tidak ditaip masih boleh membenarkan untuk penyahserikatan alat serangan.
Mitigasi dan Terbaik Amalan
Untuk mengurangkan lagi risiko, pertimbangkan amalan terbaik berikut:
Kesimpulan
Sambil memanfaatkan Tetapan TypeNameHandling.Auto Json.Net boleh mengurangkan risiko kerentanan, adalah penting untuk mengesahkan data JSON yang masuk secara menyeluruh dan melaksanakan langkah perlindungan tambahan untuk mengurangkan potensi ancaman.
Atas ialah kandungan terperinci Adakah TypeNameHandling.Auto Json.Net Menetapkan Risiko Keselamatan untuk Penyahserikatan JSON Luaran?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!