Se consentito, un utente malintenzionato che riesce a inserire JavaScript nella tua pagina (tramite exploit/social engineering) può inviare dati (generalmente sensibili) che vengono acquisiti dai tuoi client senza che questi lo sappiano (poiché XMLHttpRequests non richiede le azioni dell'utente si verificano e sono silenziose). È una misura di sicurezza del browser.
JSONP è solo un'opera attorno a questa misura di sicurezza, in cui si fornisce alla destinazione una richiamata e si affida a ciò che restituirà attraverso questa richiamata.
EDIT: Esempi di un rischio per la sicurezza: si effettua il login al proprio account di posta elettronica attraverso il web (come Gmail o Yahoo). Continui a navigare (in un'altra scheda o anche nella scheda attuale) in un altro sito dannoso. Questo sito dannoso tenta di eseguire XHR nello stesso sito Web del tuo account di posta elettronica. Poiché XHR è sul tuo comportamento, e dal momento che si tratta di una richiesta client/browser, questa richiesta avrà la stessa sessione utilizzata per l'accesso e, pertanto, questo sito Web può fare tutto ciò che desidera con il tuo account (inviare una mail spam attraverso il tuo account, scarica i tuoi contatti, ... ecc.). Un altro esempio: in un forum, qualcuno riesce a iniettare Javascript con XHR su un altro sito web. Ora può rubare la lista dei contatti (e magari cancellarli) da tutte le persone che visitano il suo post nel forum (usando la stessa sessione della tua email web). Per non parlare del fatto che può condividere la sessione dei membri del forum visitando il suo post per ottenere tutti i dati che hanno nel forum (messaggi privati / amici..etc). Può quindi inviare questi dati al suo server per salvarli.
Sì, mi sento più al sicuro ora. +1 e grazie. :) –