¿Cómo se protegen los sitios de Stack Exchange del XSS? [duplicar]

11

Me parece que debido a que los usuarios pueden publicar preguntas y comentarios en ellos con el código HTML (posiblemente etiquetas <script> ), los sitios de Stack Exchange estarían muy expuestos a los ataques XSS. ¿Cómo se protegen de esto?

    
pregunta Tom Grant 30.01.2015 - 20:52
fuente

2 respuestas

28

Para comentarios generales, las etiquetas de script están escapadas correctamente, de modo que solo se interpreta como texto en lugar de como código real . En este caso, ese tipo de cosas se manejan a través de algo conocido como codificación HTML, donde su etiqueta <script> se convertiría en &lt;script&gt; y se representaría como una cadena de texto en lugar de interpretarse como código.

Dicho esto, StackOverflow ha trabajado en una nueva característica que permite javascript ejecutable en las respuestas de las personas: enlace

Algunos de los puntos de seguridad del artículo que quiero resaltar:

  

¿Son seguros los fragmentos de pila?

     

Sí, tanto como la web en general es segura. No estás en más peligro que cuando estás navegando.   sitio con JavaScript habilitado. Dicho esto, los fragmentos se están ejecutando.   código de cliente en su navegador, y siempre debe tener cuidado   Al ejecutar código contribuido por otro usuario. Aislamos fragmentos   desde nuestros sitios para bloquear el acceso a sus datos privados de intercambio de pila:

     

• Utilizamos iframes de espacio aislado en HTML5 para evitar muchas formas de   ataque malicioso

     

• Representamos los fragmentos de código en un dominio externo   (stacksnippets.net) para garantizar que la política del mismo origen es   no está vigente y para evitar que los fragmentos accedan a su sesión iniciada   Sesión o cookies.

     

Como todos los demás aspectos de nuestro sitio, Apilar   Los fragmentos son finalmente gobernados por la comunidad. Porque los usuarios pueden   Todavía escribo código que crea comportamientos molestos como bucles infinitos   o ventanas emergentes, inhabilitamos fragmentos de cualquier publicación que tenga una gran cantidad de votos a la baja.   (puntuación inferior a -3 en Stack Overflow, -8 en Meta). Si ves mal   código que crees que debería estar deshabilitado, vota abajo de la publicación. Si tú ves   código destinado a ser dañino (como un intento de phishing),   deberías marcarlo para la atención del moderador.

    
respondido por el Greg 30.01.2015 - 21:15
fuente
3

Esto se hace al sanear los datos que ingresan los usuarios y convertirlos a un formato seguro para mostrarlos en la pantalla. En esencia, toma la entrada del usuario y convierte caracteres especiales (& lt ;, & gt ;, /, \, etc) en entidades html, lo que los hace inofensivos para mostrarlos en una página web.

    
respondido por el willc 30.01.2015 - 21:13
fuente

Lea otras preguntas en las etiquetas