¿Por qué la codificación sensible al contexto para evitar XSS?

4

OWASP recomienda que se debe realizar una codificación sensible al contexto. Por favor, ayúdeme a obtener un par de "ejemplos de código" sólidos sobre por qué debe hacerse la codificación basada en el contexto y por qué la codificación HTML por sí sola no ayuda en esos casos.

Sé que puede ayudar a los atributos sin comillas (también se explica en 2 ) pero por ahora supongamos que todo el mundo está usando atributos entre comillas [Sé que es imposible pero asumamos: /], ¿puede ayudarme a proporcionar dos ejemplos más en los que la codificación HTML no ayudará? y conduzca a ataques XSS que estarían protegidos si hubiéramos utilizado las funciones de codificación sensibles al contexto proporcionadas por 3 (esto es la única biblioteca de codificación sensible al contexto presente en el mercado que conozco)?

    
pregunta Anders 06.03.2018 - 03:41
fuente

1 respuesta

1

Voy a usar algunos ejemplos en los que varias formas de codificación HTML no ayudarán. Todos estos son casos que realmente he visto en la práctica. Usaré {{foo}} para la variable que se va a sustituir. Asumo que la codificación HTML implica reemplazar < con &lt; y > con &gt; . Si también se escapa de las comillas simples y dobles, algunas de ellas ya no serán explotables, pero otras sí.

<script>var x = '{{foo}}';</script>
<a href="{{foo}}">Clicky</a>
<script>/** Comment {{foo}} */</script>
<html ng-app='myapp'>{{foo}}</html>

Es posible que desee revisar esta publicación del blog para obtener más detalles / a>.

    
respondido por el David 06.03.2018 - 07:34
fuente

Lea otras preguntas en las etiquetas