En toute sécurité en tournant une chaîne JSON en objet

Donné une chaîne de données JSON, comment pouvez-vous tourner en toute sécurité en chaîne dans un objet JavaScript?

Évidemment, vous pouvez le faire mal avec quelque chose comme...

var obj = eval("(" + json + ')');

...mais qui nous laisse vulnérables à la chaîne json contenant un autre code, qui semble très dangereux de simplement eval.

  • Dans la plupart des langues eval comporte un risque supplémentaire. Eval laisse une porte ouverte pour être exploitées par les pirates. CEPENDANT, rappelez-vous que tous les javascript s'exécute sur le client. ATTENDEZ-vous qu'il sera modifié par les pirates. Ils peuvent EVAL ce qu'ils veulent, juste à l'aide de la console. Vous devez construire votre protection sur le côté serveur.
  • Ok, maintenant c'est en 2014 et que vous ne devez jamais utiliser eval afin d'analyser une chaîne JSON parce que vous serait d'exposer votre code pour "injection de code". Utilisation JSON.parse(yourString) à la place.
  • Est les données JSON littérale ?
  • si tu veux dire un type de données scalaires, oui, il est. Est juste une chaîne avec une valeur-clé de la syntaxe en elle.