: Implikasi Keselamatan TypeNameHandling.All
dokumentasi Newtonsoft JSON sangat berhati -hati terhadap penggunaan
TypeNameHandling.All
TypeNameHandling.All
tetapan
Contohnya, muatan JSON jinak mungkin kelihatan seperti ini: TypeNameHandling.All
{ "$type": "Car", "Maker": "Ford", "Model": "Explorer" }
, yang berpotensi memadamkan fail sewenang -wenang pada sistem dengan memanipulasi
dan{ "$type": "System.CodeDom.Compiler.TempFileCollection", "BasePath": "%SYSTEMDRIVE%", "KeepFiles": "false", "TempDir": "%SYSTEMROOT%" }
TempFileCollection
BasePath
mitigasi yang berkesan: Custom TempDir
Kunci untuk mendapatkan JSON Deserialization dengan maklumat jenis menggunakan Custom SerializationBinder
. Ini membolehkan kawalan ketat di mana jenis dibenarkan semasa deserialization, dengan berkesan menghalang instansiasi jenis berniat jahat.
melibatkan langkah -langkah ini: SerializationBinder
Buat kelas yang melaksanakan antara muka SerializationBinder
.
IBindingSerializer
BindToName
SerializationBinder
Atas ialah kandungan terperinci Adakah typenameHandling typenameHandling Newtonsoft Json. Semua risiko keselamatan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!