Skip to content
KitploitKITPLOIT
OutilsExploitsBlog
Log in
Soumettre
OutilsExploitsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
json-sanitizer — Étant donné un contenu de type JSON, le JSON Sanitizer le convertit en JSON valide. | Kitploit
Outils/GitHubGitHub/owasp/json-sanitizer
Utilitaires GénérauxAnalyse StatiqueOutils de Chiffrement/DéchiffrementAnalyse des VulnérabilitésAnalyse de CodeSécurité Web
GitHubowasp/json-sanitizer

json-sanitizer

Étant donné un contenu de type JSON, le JSON Sanitizer le convertit en JSON valide.

Voir le dépôt
2195553il y a 2 ansVérifié par Kitploit

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

json-sanitizer Fuzzing Status

Étant donné un contenu de type JSON, le JSON Sanitizer le convertit en JSON valide.

Pour commencer - Contact

Cet outil peut être attaché à chaque extrémité d'un pipeline de données pour aider à satisfaire le principe de Postel :

soyez conservateur dans ce que vous faites, soyez libéral dans ce que vous acceptez des autres

Appliqué à un contenu de type JSON provenant d'autres, il produira un JSON bien formé qui devrait satisfaire tout analyseur que vous utilisez.

Appliqué à votre sortie avant envoi, il corrigera les petites erreurs d'encodage et facilitera l'intégration de votre JSON dans du HTML et du XML.

Motivation

Architecture

De nombreuses applications ont de grandes quantités de code qui utilisent des méthodes ad hoc pour générer des sorties JSON.

Fréquemment, ces sorties passent toutes par une petite quantité de code de framework avant d'être envoyées sur le réseau. Cette petite quantité de code de framework peut utiliser cette bibliothèque pour s'assurer que les sorties ad hoc sont conformes aux normes et sûres à passer à des désérialiseurs (trop) puissants comme l'opérateur eval de JavaScript.

Les applications ont aussi souvent des API de services web qui reçoivent du JSON de diverses sources. Lorsque ce JSON est créé avec des méthodes ad hoc, cette bibliothèque peut le transformer en une forme facile à analyser.

En intégrant cette bibliothèque dans le code qui envoie et reçoit les requêtes et réponses, cette bibliothèque peut aider les architectes logiciels à garantir la sécurité et la bonne formation à l'échelle du système.

Entrée

Le sanitizer prend un contenu de type JSON et l'interprète comme le ferait JS eval. Plus précisément, il traite ces constructions non standard.

ConstructPolicy
'...'Les chaînes entre guillemets simples sont converties en chaînes JSON.
\xABLes échappements hexadécimaux sont convertis en échappements Unicode JSON.
\012Les échappements octaux sont convertis en échappements Unicode JSON.
0xABLes littéraux entiers hexadécimaux sont convertis en nombres décimaux JSON.
012Les littéraux entiers octaux sont convertis en nombres décimaux JSON.
+.5Les nombres décimaux sont convertis au format plus strict de JSON.
[0,,2]Les élisions dans les tableaux sont remplies avec null.
[1,2,3,]Les virgules finales sont supprimées.
{foo:"bar"}Les noms de propriétés non cités sont mis entre guillemets.
//commentsLes commentaires de ligne et de bloc de style JS sont supprimés.
(...)Les parenthèses de regroupement sont supprimées.

Le sanitizer corrige la ponctuation manquante, les guillemets de fin et les crochets fermants manquants ou non appariés. Si une entrée ne contient que des espaces blancs, la chaîne JSON valide null est substituée.

Sortie

La sortie est du JSON bien formé tel que défini par RFC 4627. La sortie satisfait ces propriétés supplémentaires :

  • La sortie ne contiendra pas les sous-chaînes (insensible à la casse) "<script", "</script" ou "<!--" et peut donc être intégrée dans un élément script HTML sans encodage supplémentaire.
  • La sortie ne contiendra pas la sous-chaîne "]]>" et peut donc être intégrée dans une section CDATA XML sans encodage supplémentaire.
  • La sortie est une expression JavaScript valide, donc peut être analysée par la fonction intégrée eval de JavaScript (après avoir été entourée de parenthèses) ou par JSON.parse. Plus précisément, la sortie ne contiendra aucun littéral de chaîne avec des sauts de ligne JS intégrés (séparateur de paragraphe U+2028 ou séparateur de ligne U+2029).
  • La sortie contient uniquement des valeurs scalaires Unicode valides (aucun surrogate UTF-16 isolé) qui sont autorisées en XML sans échappement.

Sécurité

Puisque la sortie est du JSON bien formé, la passer à eval n'aura aucun effet de bord et aucune variable libre, donc ce n'est ni un vecteur d'injection de code, ni un vecteur d'exfiltration de secrets.

Cette bibliothèque garantit seulement que la phase de conversion de la chaîne JSON en objet JavaScript n'a pas d'effets de bord et ne résout aucune variable libre, et ne peut pas contrôler comment d'autres codes côté client interprètent ensuite l'objet JavaScript résultant. Donc si un code côté client prend une partie des données analysées qui est contrôlée par un attaquant et la repasse à travers un interpréteur puissant comme eval ou innerHTML, alors ce code côté client pourrait subir des effets de bord involontaires.

var myValue = eval(sanitizedJsonString);  // safe
var myEmbeddedValue = eval(myValue.foo);  // possibly unsafe

De plus, l'assainissement du JSON ne peut pas protéger une application des attaques de député confus

var myValue = JSON.parse(sanitizedJsonString);
addToAdminstratorsGroup(myValue.propertyFromUntrustedSource);

Performance

La méthode sanitize retournera la chaîne d'entrée sans allouer un nouveau tampon lorsque l'entrée est déjà du JSON valide qui satisfait les propriétés ci-dessus. Ainsi, si elle est utilisée sur une entrée généralement bien formée, elle a une surcharge mémoire minimale.

La méthode sanitize prend un temps O(n) où n est la longueur de l'entrée en unités de code UTF-16.

Télécharger l’outil