La aplicación utiliza el método html_safe, posibles problemas

0

Para alguien que no sabe, .html_safe es el método rieles, que genera cadenas como parte de un documento html. El problema es que la cadena es ingresada por el usuario. ¿Qué hice para evitar algunas acciones incorrectas? Las expresiones regulares se insertan después de cada símbolo invisible < o > , que rompe todas las etiquetas, que podría ser parte del html del documento. Pero todavía me siento un poco inseguro, ¿protege la página? ¿Alguna otra forma de usar .html_safe , excepto las etiquetas o el símbolo no me protege lo suficiente?

    
pregunta Joe Half Face 04.06.2013 - 04:10
fuente

1 respuesta

2

Aquí hay un artículo que explica en detalle cómo html_safe realmente trabajos. En resumen, debería no llamar a .html_safe en cadenas no confiables o en cadenas que contengan otras cadenas no confiables (por ejemplo, "trusted #{untrusted} trusted" ).

Si tiene una cadena de confianza (no ingresada por el usuario) que necesita que no se haya escapado, puede llamar a html_safe en ella, y continuar agregándole otras cadenas (o agregándola a otra SafeBuffer s). Todas las cadenas normales agregadas a un SafeBuffer se escaparán y, por lo tanto, no pueden causar vulnerabilidades de XSS. Si concatena dos SafeBuffer s, sin embargo, no se producirá ningún escape.

También de acuerdo con el artículo vinculado, la representación de cada vista comienza con un SafeBuffer vacío, por lo que todas las cadenas que agregue se escaparán de forma predeterminada.

    
respondido por el mgibsonbr 04.06.2013 - 07:08
fuente

Lea otras preguntas en las etiquetas