¿Es seguro llamar a un servicio no confiable con jquery.ajax y dataType 'jsonp'

1

Por lo que entiendo, la técnica JSON-P genera una etiqueta de script en el DOM de una página HTML para conocer las restricciones de origen único impuestas en la API de JavaScript XMLHttpRequest para llamadas AJAX a servicios web que no admiten CORS . Por lo general, la secuencia de comandos incrustada de esta manera solo contiene una devolución de llamada y de esta manera transfiere la carga útil JSON que me interesa. Sin embargo, AFAIK, el servicio JSON-P llamado también podría entregar JavaScript arbitrario y de esta manera secuestrar mi página web.

Me pregunto si realmente debo confiar en que el proveedor de servicios JSON-P no haga esto. O, ¿las bibliotecas y / o navegadores de JavaScript desinfectan las respuestas JSON-P y de esta forma evitan este tipo de ataques?

Por ejemplo, para la función JQuery ajax , el uso de JSON-P se habilita configurando el aspecto bastante inofensivo atributo dataType: 'jsonp' - ¿entonces tal vez este tipo de llamadas no son tan malas como creo que son?

    
pregunta oberlies 10.07.2014 - 18:04
fuente

1 respuesta

3

No no es seguro. Usted tiene razón en que el servicio JSONP podría entregar JavaScript arbitrario, que luego se ejecuta como parte de su sitio.

Debido a que JSONP es esencialmente un truco para sortear la misma política de origen, no es posible que un marco de JavaScript realice la desinfección.

En estos días, CORS es la forma preferida de llamar a sitios externos. Un enfoque alternativo es tener un script del lado del servidor en su sitio que sirva de proxy a los sitios externos.

    
respondido por el paj28 10.07.2014 - 18:16
fuente

Lea otras preguntas en las etiquetas