2011-07-12 13 views
10

Google plus devuelve las solicitudes ajax con )]}' en primera línea. Escuché que es protección contra XSS. ¿Hay algún ejemplo de qué y cómo podría alguien hacer con esto sin esa protección?"Protección Anti-XSS" al agregar)]} 'antes de la respuesta ajax

+0

Relacionado: [Extraña respuesta JSON en Google Plus] (http: // stackoverflow.com/questions/6618441/strange-json-response-in-google-plus) – dtb

+0

Esa es exactamente la pregunta de la que estaba hablando "Escuché que es protección contra XSS" – genesis

+0

¿Debería ser esta una nueva pregunta? Puede obtener más información en la otra pregunta ... –

Respuesta

15

Aquí está mi mejor versión de lo que está pasando aquí.

En primer lugar, hay otros aspectos del formato de google json que no son completamente válidos json. Entonces, además de cualquier propósito de protección, pueden estar usando esta cadena específica para indicar que el resto del archivo está en formato google-json y debe interpretarse en consecuencia.

El uso de esta convención también significa que la alimentación de datos no se ejecutará a partir de una llamada de una etiqueta de secuencia de comandos ni interpretará la javascript directamente desde una evaluación(). Esto garantiza que los desarrolladores de front-end pasen el contenido a través de un analizador sintáctico, lo que evitará que se ejecute cualquier código implantado.

Para responder a su pregunta, existen dos ataques plausibles que esto evita, un sitio cruzado a través de una etiqueta de secuencia de comandos, pero el más interesante es dentro del sitio. Ambos ataques suponen que: existe

  1. un error en cómo se escapó de datos de usuario y
  2. se explota de una manera que permite a un atacante inyectar código en uno de alimenta los datos.

Como un simple ejemplo, digamos un usuario descubierto la manera de tomar una cadena como ejemplo

["example"] 

y lo cambió a "]; alert ('ejemplo');

[""];alert('example');"] 

Ahora, si cuando los datos se muestran en el feed de otro usuario, el atacante puede ejecutar código arbitrario en el navegador del usuario. Dado que está dentro del sitio, las cookies son ser enviado al servidor y el atacante podría automatizar cosas como compartir publicaciones o enviar mensajes a personas desde la cuenta del usuario.

En el escenario de Google, estos ataques no funcionarán por una serie de razones. Los primeros 5 caracteres provocarán un error de javascript antes de que se ejecute el código de ataque. Además, dado que los desarrolladores se ven obligados a analizar el código en lugar de ejecutarlo accidentalmente a través de una evaluación, esta práctica evitará que el código se ejecute de todos modos.

7

Como otros han dicho, es una protección contra Cruz de letra Inclusión (XSSI)

Nos explicó en Gruyere como:

En tercer lugar, usted debe asegurarse de que el guión no es ejecutable . La forma estándar de hacer esto es agregar un prefijo no ejecutable a , como])} while (1) ;. Un script que se ejecuta en el mismo dominio puede leer el contenido de la respuesta y quitar el prefijo, pero los scripts que se ejecutan en otros dominios no pueden.

Cuestiones relacionadas