texto sirve que para metodos ejemplo definicion java security jsf

sirve - panel de texto java



¿Cómo implementar una posibilidad para que el usuario publique algunos datos con formato html de forma segura? (2)

Tengo un área de textarea y quiero admitir algunos formatos más simples para los datos publicados (al menos, espacios en blanco y saltos de línea).

¿Cómo puedo conseguir esto? Si no escaparé a la respuesta y conservaré algunas etiquetas html, será un gran agujero de seguridad. Pero no veo ninguna otra solución que permita el formato de texto en el navegador.

Entonces, probablemente debería filtrar la entrada del usuario. ¿Pero cómo puedo hacer esto? ¿Hay alguna solución lista para usar? Estoy usando JSF, ¿hay algún componente inteligente que filtre todo, excepto las etiquetas html?


¿Hay algún motivo por el que deba aceptar HTML en lugar de otro lenguaje de marcado, como el marcado (que es lo que usa )?

http://daringfireball.net/projects/markdown/

No estoy seguro de qué tipo de etiquetas desea aceptar que no estén cubiertas por md o un lenguaje de formato similar ...


Use un analizador HTML que admita el filtrado HTML en una lista blanca como Jsoup . Aquí hay un extracto de relevancia de su sitio .

Desinfecte el HTML que no es de confianza

Problema

Desea permitir que los usuarios que no son de confianza suministren HTML para el resultado en su sitio web (por ejemplo, como presentación de comentarios). Debe limpiar este HTML para evitar ataques de scripts de sitios cruzados (XSS).

Solución

Utilice jsoup HTML Cleaner con una configuración especificada por una lista Whitelist .

String unsafe = "<p><a href=''http://example.com/'' onclick=''stealCookies()''>Link</a></p>"; String safe = Jsoup.clean(unsafe, Whitelist.basic()); // now: <p><a href="http://example.com/" rel="nofollow">Link</a></p>

Y luego para mostrarlo con espacio en blanco conservado, aplique CSS white-space: pre-wrap; en el elemento HTML donde lo estás mostrando

No me viene a la mente ningún componente JSF todo en uno.