www site prevention_cheat_sheet prevent org index how cross_site_scripting cross avoid anti validation email url coldfusion xss

validation - site - xss protection owasp



¿IsValid() protege de XSS? (1)

Una URL válida aún puede contener un vector de ataque:

<!--- No on CF9 ---> <cfoutput>#isValid("url", "http://www.mydomain.com/products/products.asp?productid=123; DROP TABLE Products")#</cfoutput> <!--- Yes on CF9: hex encoded '';DROP TABLE Products'' ---> <cfoutput>#isValid("url", "http://www.mydomain.com/products/products.asp?productid=123%3B%20%44%52%4F%50%20%54%41%42%4C%45%20%50%72%6F%64%75%63%74%73")#</cfoutput>

De acuerdo, lo anterior no es un ataque XSS, pero podría cambiarse para actualizar columnas con un ataque.

La validación de correo electrónico parece prevenir los ataques que pude encontrar .

Como generalización, isValid() ayuda a prevenir ataques XSS cuando el tipo de datos es finito: enteros, SSN, UUID, etc., sin embargo, hay una larga lista de posibles ataques documentados contra campos cuyo único tipo de datos per se es ''cadena''. En ese caso, isValid() es de ayuda, más bien AntiSamy de OWASP es una herramienta útil para este propósito que atraviesa el DOM y elimina todo lo que no figura en la lista blanca.

¿La mejor expresión regular para atrapar el ataque XSS (Cross-site Scripting) (en Java)? proporciona mucha información útil sobre el tema general de la prevención XSS.

Y finalmente para profundizar el punto, use:

<cfqueryparam cfsqltype="..." value="...">

para proteger las consultas .

Actualizar

Por último, pero no por ello menos importante, OWASP XSS Cheat Sheet : el mejor conjunto de heurísticas disponibles para procesar las entradas y evitar XSS.

¿El uso de IsValid () para validar una dirección de correo electrónico o un formato de URL protege de XSS? ¿Niega XSS cuando se especifican otros formatos?