¿Cómo funciona la inclusión de un prefijo mágico en una respuesta JSON para prevenir ataques XSSI?

9

Mientras trabajaba en un proyecto que usaba la API REST para Gerrit Code Review, me di cuenta de que hacían algo que me parecía extraño Source :

  

Para evitar ataques de inclusión de secuencia de comandos en sitios cruzados (XSSI), el cuerpo de respuesta JSON comienza con una línea de prefijo mágico que debe eliminarse antes de enviar el resto del cuerpo de respuesta a un analizador JSON:

)]}'
[ ... valid JSON ... ]

¿Cómo funciona el prefijo del cuerpo de la respuesta con caracteres aparentemente aleatorios para evitar XSSI?

    
pregunta ecnepsnai 13.01.2016 - 21:57
fuente

1 respuesta

7

XSSI funciona al tratar de evaluar una respuesta JSON como Javascript y la secuencia )]}' evita esto al generar de forma confiable un error de sintaxis.

Se han propuesto diferentes contramedidas contra la inclusión de guiones no deseados, pero poner un bucle infinito (he visto for(;;) usado en las API de Facebook) o producir un error de sintaxis (algunas API de Google usan )]}' como en su ejemplo) se muestra suficientemente sano y es compatible con versiones anteriores. Este artículo tiene algunos ejemplos adicionales.

Si no está seguro de por qué XSSI es una amenaza en primer lugar y viola la política del mismo origen , lea sobre esto aquí .

    
respondido por el Arminius 13.01.2016 - 23:42
fuente

Lea otras preguntas en las etiquetas