Maison >développement back-end >C++ >Comment puis-je gérer en toute sécurité TypenameHandling dans Newtonsoft JSON pour empêcher les attaques de désérialisation?
typenameHandling
Dans le processus de sérialisation et de dérivé JSON, il est essentiel de gérer soigneusement la Genename, en particulier lors du traitement des sources de données externes.
typenameHandling.Tous bien qu'il facilite l'inférence du type dans le processus de profondericularisation, il existe également un risque de sécurité. Lorsque l'appareil est de JSON, qui n'est pas fiable, ce paramètre permet à Newtonsoft JSO de créer une instance spécifiée dans les métadonnées désignées.
Danger potentiel:
L'attaquant peut envoyer un JSON malveillant contenant l'attribut de type $. Ce type peut supprimer automatiquement des fichiers sur le système de la victime lors du recyclage des ordures, mettant ainsi en danger l'intégrité des fichiers.
Exemple:
Compte tenu de la charge efficace JSON malveillante suivante:
Si vous discernez ce JSON sans mesures de sécurité appropriées, instancié TempFileCollection Type et essayez de supprimer des fichiers en fonction du paramètre spécifié.Soulagez les mesures:
<code class="language-json">{ "$type": "System.CodeDom.Compiler.TempFileCollection", "BasePath": "%SYSTEMDRIVE%", "KeepFiles": "False", "TempDir": "%SYSTEMROOT%" }</code>
Afin de réduire ce risque, lors de l'utilisation du type TynEname. Ce liant peut vérifier la sécurité du type référencé avant de construire une instance.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!