2010-08-30 44 views
9

Estoy buscando una biblioteca java que pueda brindar protección contra XSS attacks. Estoy escribiendo un servidor y me gustaría validar que la entrada de mi usuario no contiene javascript maliciosos.Librerías java Anti-XSS

¿Qué biblioteca recomendarías?

+0

posible duplicado de [Cómo "purificar" el código HTML para evitar ataques XSS en Java o JSP?] (http://stackoverflow.com/questions/3587199/how-to-purify-html-code-to-prevent-xss-attacks-in-java-or-jsp) y [Mejor expresión regular para detectar XSS (Cross-site Scripting)) ataque (en Java)?] (http://stackoverflow.com/questions/24723/best-regex-to-catch-xss-cross-site-scripting-attack-in-java) – BalusC

+0

@BalusC - true. – ripper234

Respuesta

6
+0

Creo que AntiSamy no proporciona la funcionalidad de detección si se realiza un XSS. ¿Puede sugerir una biblioteca que ayudaría a la detección de la misma? – Siddharth

+1

XSS no se puede detectar realmente hasta que se haya ejecutado correctamente en el contexto de un navegador. Sin embargo, antisamy genera una lista de errores para que pueda ver las razones por las que se rechazó un DOM en particular. En esta etapa, sin embargo, antisamia no se ha tocado desde 2013, por lo que probablemente no se debe utilizar de todos modos. – avgvstvs

1

Si desea aceptar HTML de los usuarios, entonces AntiSamy o algo así como jsoup tiene sentido. Sin embargo, si lo que desea es un buen conjunto de fugitivos, puede utilizar una biblioteca como CSL

Tenemos una línea hoja de trucos que muestra cómo utilizarlo en muchos contextos HTML (aka HTML constructs):

+0

No utilice Jsoup para fines de validación de seguridad. El diseño de Jsoup es "corregir" el HTML no válido, y muchos ataques XSS son deliberadamente inválidos ... por lo que Jsoup lo "corrige" y su validación probablemente lo señale como bueno. – avgvstvs

2

La gran publicar cómo evitar los ataques XSS en diferentes situaciones se publica en la siguiente pila: Avoid XSS and allow some html tags with JavaScript

+0

Me mantendría alejado de usar javascript para hacer esto: la mayoría de los ataques actualmente están basados ​​en DOM, y javascript tiene una técnica llamada monkeypatching que puede permitir a un atacante tomar el control de cualquier función del lado del cliente. – avgvstvs

+0

@avgvstvs si el atacante ya tiene acceso a la posibilidad de aplicar el parche de mono, básicamente ya puede hacer cualquier cosa que pueda hacer a través de XSS. –

+0

@MatthijsWessels Mi punto es que, como desarrollador web, la interfaz es simplemente el * lugar * incorrecto para implementar * cualquier * tipo de prevención XSS, porque el servidor no tiene control sobre lo que sucede en el navegador. El navegador no es de confianza, todo el tiempo. – avgvstvs

0

He utilizado el proyecto de desinfección de HTML OWASP con mucho éxito.

https://www.owasp.org/index.php/OWASP_Java_HTML_Sanitizer_Project

Las políticas pueden ser definidas (o políticas predefinidas se pueden utilizar) que permiten controlar lo que se permiten tipos de elementos HTML en la cadena que se está validado/desinfectados. Se puede usar un oyente ya que el código HTML se desinfecta para determinar qué elementos se rechazan, lo que le brinda flexibilidad sobre cómo comunicarlo al cliente. Además de una implementación fácil, también me gusta esta biblioteca porque es producida y mantenida por OWASP, una organización de larga data cuyo objetivo es la seguridad web.

Cuestiones relacionadas