Maison >développement back-end >C++ >Comment puis-je sécuriser ma désérialisation JSON à partir de sources externes à l'aide de TypeNameHandling de Json.Net ?
Vulnérabilité JSON externe due à Json.Net TypeNameHandling Auto
Le paramètre automatique TypeNameHandling de Json.Net peut potentiellement introduire des risques de sécurité lors de la désérialisation de JSON à partir de fichiers non fiables sources. Cependant, ces risques peuvent être atténués en respectant des directives spécifiques.
Gadgets de sécurité et d'attaque de type
Les attaques exploitant TypeNameHandling reposent sur la construction de « gadgets d'attaque » qui exécutent des actions malveillantes. lors de l'instanciation ou de l'initialisation. Json.Net se protège contre ces attaques en validant la compatibilité des types désérialisés avec les types attendus.
Conditions de vulnérabilité
Tout en n'ayant aucun objet explicite ni membre dynamique dans la cible la classe réduit le risque, elle ne garantit pas entièrement la sécurité. Des vulnérabilités potentielles pourraient survenir dans les scénarios suivants :
Atténuation du risque
Pour minimiser les risques, il est essentiel de suivre ces recommandations :
En adhérant à ces directives, il est possible de désérialiser JSON en toute sécurité, même dans la présence de TypeNameHandling auto tout en réduisant considérablement les risques d'attaques.
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!