jeudi 28 juin 2012

OWASP S12 - S16 - JSON (episode 1)

Dans cet épisode nous allons aborder la problématique de JSON qui est un des formats de stockage utilisé dans des bases NOSQL.Entre autre dans l'une des plus populaires MongoDB

Comprendre JSON est nécessaire pour avancer dans les problématiques d'injection NOSQL… (et puis aussi pour parler d'AJAX)

Tout d'abord il convient de rappeler ce qu'est JSON. JavaScript Object Notation est un ersatz de JavaScript permettant d'échanger simplement des données. Sa lecture est extrêmement simple car il s'agit d'un format Texte simple (comme l'est le XML). Sa syntaxe se rapproche du C/C++/Java.

JSON est un sous-ensemble de JavaScript et peut donc contenir des "instructions exécutables", donc apporter

  • une solution a un problème
  • un nouveau problème…

suivant comment le développeur utilise les capacités de son framework JSON...

Dans JSON on peut trouver :
  • des objets; ils contiennent des membres ou des listes de membres, chacun des membres étant de la forme {"nom":"valeur", "nom2":"valeur2", …}
  • des variables
  • des tableaux : ils contiennent plusieurs valeurs séparées par des virgules sous la forme : [valeur, valeur, …]
  • des valeurs numériques
  • des valeurs littérales : null, true, false, …
  • des valeurs exécutables….
Exemple de définition d'un menu en JSON :
{
	"menu":"Fichier",
	"commandes": [
	{
		"titre":"Nouveau",
		"action": "CreerDoc"
	},
	{
		"titre":"Ouvrir",
		"action": "OuvrirDoc"
	}
	]
}
Exemple de code inclus dans un fichier/objet JSON et exécution dudit code sur le client :
objJSON = {	nom1 : "val1", nom2: "val2", leCode: "document.getElementById(\"monID\").innerHTML=\"leCode\";"};
eval (objJSON.leCode); 
JSON a donc plusieurs avantages :
  • Il est simple à lire et a écrire
  • Il supporte a peu près tout ce qu'on a besoin pour stocker des données (hormis les données binaires..et encore…)
  • Il est très rapide lorsqu'on le traite avec du JavaScript
  • Il est simple à mettre en oeuvre (pas besoin de le parser, car il est reconnu nativement par JavaScript)
Tous ces avantages font que JSON est pas mal utilisé dans les applications Web(via AJAX) et dans les WebServices (c'est bien plus simple qu'en XML car on a pas de schéma de parsing !!!) Pour l'utiliser :
  • sur les clients : il suffit d'assigner le contenu du JSON à une variable qui devient alors un objet de votre programme
  • sur les serveurs: il faut utiliser des parseurs JSON (cf le site JSON.ORG)

Aucun commentaire:

Enregistrer un commentaire

//Activation syntaxhilight