Pregunta

Estoy tratando de manejar este posible exploit y me pregunto cuál es la mejor manera de hacerlo. ¿Debo usar el validador común de Apache y crear una lista de símbolos permitidos conocidos y usar eso?

¿Fue útil?

Solución

Del artículo de Wikipedia :

  

La solución genérica es codificar cadenas de URL antes de incluirlas en encabezados HTTP como Location o Set-Cookie.

     

Los ejemplos típicos de desinfección incluyen conversión a entero o reemplazo agresivo de expresiones regulares. Vale la pena señalar que, aunque este no es un problema específico de PHP, el intérprete de PHP contiene protección contra este ataque desde la versión 4.4.2 y 5.1.2.

Editar

  

¡Estoy atado a usar jsp's con acciones de Java!

No parece haber ninguna protección basada en JSP para este vector de ataque; muchas descripciones en la web suponen asp o php, pero este enlace describe una forma bastante neutral de la plataforma para abordar el problema (jsp se utiliza como un ejemplo incidental en él).

Básicamente, su primer paso es identificar los caracteres potencialmente peligrosos (CR, LF, etc.) y luego eliminarlos. ¡Me temo que esta es una solución tan robusta como puedes esperar!

  

Solución

     

Validar entrada. Elimine los CR y LF (y todos los demás caracteres peligrosos) antes de incrustar datos en cualquier encabezado de respuesta HTTP, especialmente al configurar cookies y redirigir. Es posible utilizar productos de terceros para defenderse contra la inyección de CR / LF y probar la existencia de tales agujeros de seguridad antes de la implementación de la aplicación.

Otros consejos

¿Usa PHP ? ;)

Según Wikipedia y PHP CHANGELOG, los PHP tenían protección contra él en PHP4 desde 4.4.2 y PHP5 desde 5.1.2.


Solo lo hojeó, pero, esto podría ayudar . Sus ejemplos están escritos en JSP.

ok, la conversión a un int no es de mucha utilidad al leer cadenas, también usar expresiones regulares en cada acción que recibe información del navegador puede ser complicado, estoy buscando una solución más robusta

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top