È sicuro chiamare un servizio non affidabile con jquery.ajax e dataType 'jsonp'

1

Da quanto ho capito, la tecnica JSON-P genera un tag script nel DOM di una pagina HTML per superare le restrizioni di origine singola imposte all'API JavaScript XMLHttpRequest per le chiamate AJAX ai servizi Web che non supportano CORS . Di solito, lo script incorporato in questo modo contiene solo una richiamata e in questo modo trasferisce il carico utile JSON a cui sono interessato. Tuttavia, AFAIK il servizio JSON-P chiamato potrebbe anche fornire un codice JavaScript arbitrario e in questo modo dirottare la mia pagina web. / p>

Mi chiedo se devo davvero fidarmi del provider di servizi JSON-P per non farlo? Oppure le librerie e / oi browser JavaScript disinfettano le risposte JSON-P e in questo modo prevengono questo tipo di attacchi?

Ad esempio per la funzione JQuery ajax , l'uso di JSON-P è abilitato impostando l'aspetto piuttosto innocuo attributo dataType: 'jsonp' - quindi forse questo tipo di chiamate non è così male come penso che siano?

    
posta oberlies 10.07.2014 - 18:04
fonte

1 risposta

3

No non è sicuro. Hai ragione sul fatto che il servizio JSONP potrebbe fornire JavaScript arbitrario, che viene quindi eseguito come parte del tuo sito.

Poiché JSONP è essenzialmente un trucco per aggirare lo stesso criterio di origine, non è possibile che un framework JavaScript esegua la sanificazione.

In questi giorni, CORS è il modo preferito per chiamare siti esterni. Un approccio alternativo è quello di avere uno script sul lato server sul tuo sito che trasmette proxy a chiamate a siti esterni.

    
risposta data 10.07.2014 - 18:16
fonte

Leggi altre domande sui tag