Quando possibile, usa formati di dati meno complessi come il JSON ed evita il formato XML

Quando possibile, usa formati di dati meno complessi come il JSON ed evita il formato XML

JSON è stato rilevante fin dalla sua adozione nei servizi Web più diffusi, a metà degli anni 2000. XML è più vecchio, essendo in circolazione dal 1998, quando il World Wide Web Consortium (W3C) lo ha ufficialmente raccomandato.XML e JSON sono entrambi formati universali per la condivisione di dati tra architetture e programmi informatici, ma presentano una serie di differenze. È importante innanzitutto riassumere ciò che XML e JSON hanno in comune:

1. Entrambi sono standard di condivisione dei dati ampiamente utilizzati, con una documentazione disponibile pubblicamente:

https://tools.ietf.org/html/rfc4825 (XML)

https://tools.ietf.org/html/rfc7159 (JSON)

2. Entrambi sono autodescrittivi e leggibili dall'uomo: autodescrittivi in quanto sono rappresentati come un albero gerarchico di metadati, e leggibili dall'uomo in quanto i dati stessi sono caratteri ASCII e Unicode;

3. Esistono librerie per lavorare con entrambi per molti linguaggi di programmazione: tra cui JavaScript, Python, Perl, Ruby e altri;;

4. Il codice JavaScript del client può accedere alle risposte in entrambi i linguaggi attraverso richieste asincrone.

XML

La configurazione dei parser XML e la loro interazione con la struttura del documento comportano una serie di problemi di sicurezza che devono essere affrontati per proteggere adeguatamente un'applicazione che utilizza gli XML.

JSON

Essendo un formato di dati semplice, senza configurazioni basate sul documento, la semplice analisi di un documento JSON non è soggetta a configurazioni errate. Tuttavia, dato che JSON è stato progettato per essere un sottoinsieme di JavaScript, si è tentati di analizzare un documento JSON semplicemente passandolo a un motore JavaScript (ad esempio, il metodo eval). Alcune implementazioni di scambi JSON in JavaScript funzionano in questo modo e possono aprire un'applicazione a vulnerabilità note.