Deserialisasi JSON dengan pengendalian jenis automatik boleh menimbulkan ancaman keselamatan. Artikel ini bertujuan untuk menjelaskan kemungkinan kelemahan apabila menggunakan TypeNameHandling dengan tetapan ditetapkan kepada Auto dalam Json.Net.
Memahami TypeNameHandling dalam Json.Net
TypeNameHandling mengawal cara JSON. Net menyahsiri jenis dengan sifat "$type", yang menentukan sepenuhnya nama yang layak dari jenis untuk dijadikan instantiat. Apabila ditetapkan kepada Auto, Json.Net cuba menyelesaikan jenis yang ditentukan dan membina kejadian.
Potensi Bahaya
Tanpa objek segera atau ahli dinamik dalam model data anda, anda mungkin menerima perlindungan daripada serangan penyahserialisasian. Walau bagaimanapun, senario tertentu masih boleh memperkenalkan risiko:
Langkah-Langkah Tebatan
Untuk meningkatkan keselamatan, pertimbangkan perkara berikut:
Kesimpulan
Walaupun mekanisme tertentu dalam Json.Net membantu mengurangkan kelemahan, adalah penting untuk mempertimbangkan dengan teliti potensi risiko yang ditimbulkan oleh TypeNameHandling dalam penyahserikan JSON luaran. Dengan mengikuti langkah berjaga-jaga yang disyorkan, seperti melaksanakan SerializationBinder tersuai dan mengesahkan penaipan model data anda, anda boleh meningkatkan keselamatan aplikasi anda sambil menggunakan ciri Json.Net.
Atas ialah kandungan terperinci Sejauh Mana Selamat Penyahserialisasian JSON Anda dengan TypeNameHandling Json.Net?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!