Rumah >pembangunan bahagian belakang >C++ >Bagaimanakah saya dapat mengendalikan typenameHandling di Newtonsoft Json dengan selamat untuk mengelakkan serangan deserialization?
Dalam proses siri dan derivatif JSON, adalah penting untuk mengendalikan typenameHandling dengan teliti, terutamanya apabila memproses sumber data luaran.
typenameHandling.all Walaupun ia memudahkan kesimpulan jenis dalam proses deeperularization, terdapat juga risiko keselamatan. Apabila peranti itu berasal dari JSON, yang tidak dipercayai, tetapan ini membolehkan Newtonsoft JSON membuat contoh yang ditentukan dalam metadata yang ditetapkan.
Potensi Bahaya:
Penyerang boleh menghantar JSON yang berniat jahat yang mengandungi atribut jenis $. Jenis ini secara automatik boleh memadam fail pada sistem mangsa semasa kitar semula sampah, dengan itu membahayakan integriti fail.
Contoh:
Memandangkan beban berkesan JSON yang berniat jahat berikut:
Jika anda membezakan JSON ini tanpa langkah keselamatan yang sesuai, jenis tempfilecollection instantiated dan cuba memadam fail mengikut parameter yang ditentukan.Melegakan langkah -langkah:
<code class="language-json">{ "$type": "System.CodeDom.Compiler.TempFileCollection", "BasePath": "%SYSTEMDRIVE%", "KeepFiles": "False", "TempDir": "%SYSTEMROOT%" }</code>
Untuk mengurangkan risiko ini, apabila menggunakan typenameHandling.All Back -Sequentization, jenis perkhidmatan tersuai yang disahkan mesti digunakan untuk mengesahkan jenis yang dihantar. Pengikat ini boleh mengesahkan keselamatan jenis yang dirujuk sebelum membina contoh.
Atas ialah kandungan terperinci Bagaimanakah saya dapat mengendalikan typenameHandling di Newtonsoft Json dengan selamat untuk mengelakkan serangan deserialization?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!