ESTO NO ES SOBRE XSS
Amenaza: Mallory ingresa caracteres de control en el campo de texto de una aplicación web pública que otros usuarios podrían usar en un programa de terminal (a través de copiar + pegar o ejecutando un script).
Otra amenaza es que un usuario ingrese a un dominio de phishing (que se muestra más adelante) y use un carácter de control RTL para que parezca no phishy.
http://www.moc.lapyap
es en realidad http://www.\u202Emoc.lapyap
(Otra razón menor es que Postgres barfs si un usuario ingresa el carácter nulo).
No estoy hablando de una inyección XSS regular que ejecute javascript. Estoy usando JSoup para evitar XSS y funciona bien, pero no bloquea los caracteres de control (a menos que se produzca un XSS)
Miré el validador ESWI de OWASP pero solo valida los caracteres ASCII (por ejemplo, en el método getValidPrintable ()).
Parece que no hay una buena razón para aceptar:
\ u0000 - \ u001F (excepto retorno de carro, avance de línea, pestaña horizontal)
\ u007F - \ u009F
\ u202E
¿Con qué otras personas debería preocuparme?
El escape / codificación en guardar es tan incorrecto como lo es con XSS.