2011-02-09 22 views
5

Tengo un formulario de texto gratuito para que las personas envíen comentarios o solicitudes de asistencia. Ocasionalmente, las personas pasarán en un ticket de soporte o un registro de error que contiene algo que desencadena el validador de página .NET como un intento de XSS. Esto lleva al usuario a la página de error como si el sitio se bloqueara en su entrada.¿Validación del cliente que actúa igual que la validación de página .NET/prevención XSS?

Preferiblemente, prefiero que la página haga una validación al lado del cliente cuando presionen el botón de guardar antes de enviarlo.

¿Hay una expresión regular o algún método que pueda enganchar que haga la misma verificación básica en el lado del cliente, o tendré que escribir una expresión regular que deshabilite ciertos caracteres como < y >? CrossSiteScriptingValidation interna

Respuesta

6

.NET de 4,0 utiliza el método IsDangerousString para que coincida en estas condiciones:

Si la única ocurrencia de < o & se encuentra al final de los datos de correos, entonces es seguro. Si < es seguido por a-z, A-Z, /,? O! entonces es inseguro Si & es seguido por un # (octothorpe!) Entonces no es seguro.

Esta expresión regular en javascript debería funcionar:

/^(?!(.|\n)*<[a-z!\/?])(?!(.|\n)*&#)(.|\n)*$/i 
Cuestiones relacionadas