Una idea más simple para la protección contra el XSS reflejado en el lado del cliente

0

Estaba atravesando algunas defensas laterales del CLIENTE contra el XSS reflejado, p. ej. XSS auditor (chrome), IE8 XSS Filters, NoScript. Utilizan expresiones regulares y otras técnicas sofisticadas. ¿Por qué no usaron una idea más simple?

Mi pregunta es: ¿por qué no almacenamos lo que siempre va al servidor como parámetros y si estos parámetros se reflejan en la respuesta HTML, lo descartamos o lo codificamos? Idea simple Siento que puede haber falsos positivos pero no muy convincentes. Cualquier entrada?

    
pregunta Naman 17.04.2014 - 13:03
fuente

1 respuesta

1
  

Mi pregunta es: ¿por qué no almacenamos lo que siempre va al servidor como parámetros? Si estos parámetros se reflejan en la respuesta HTML, lo descartamos o codificamos

¿Algún parámetro ? Entonces, si busco "Hola" y la página de respuestas contiene el texto "Aquí están tus resultados para Hola", ¿se ha destruido?

Tiene que haber algún criterio para lo que cuenta como potencialmente peligroso, de lo contrario, cada formulario en la web se romperá de esta manera. Podría comenzar con "cualquier parámetro con un < in", pero ¿qué pasa con los ataques de inyección de atributo como onmouseover= , o la inyección de JavaScript como '; alert(document.cookie) ? ¿Y cómo evitar que un parámetro de < rompa todas las etiquetas de la página? No hay una respuesta estúpida obvia, por lo que la detección termina siendo un lío complejo de reglas heurísticas y no un patrón limpio y hermético.

Personalmente, creo que la detección de XSS reflejada del lado del cliente está muy equivocada: en principio, condenada al fallo y , pero si lo va a hacer, tendrá que limitar su alcance porque la reflexión del contenido es una propiedad común que la web necesita para funcionar correctamente, no siempre un ataque.

    
fuente

Lea otras preguntas en las etiquetas