2010-03-10 20 views
5

El control TextBox ofrece una propiedad MaxLength, que permite que el texto insertable en ese cuadro de texto se limite al cliente con la cantidad especificada de caracteres.¿Qué tan confiable es la propiedad MaxLength de TextBox-Control?

Mis preguntas:

  • ¿Es esta propiedad sólo del lado del cliente y, por lo tanto navegador pedendent?
  • ¿Puedo confiar en el hecho, de que la propiedad Text no contiene texto más largo que MaxLength está establecido (sólo para los DisplayModes nombrados en el artículo de MSDN ) o tengo manualmente para realizar una TextBox.Text. SubString (0, DesiredMaxLength) ?
  • ¿Cómo se comporta todo esto con java-script deshabilitado?

Respuesta

7

No depende de javascript, pero eso no lo hace seguro.

Cualquiera puede todavía publicar una solicitud usando javascript (XmlHttpRequest por ejemplo) o simplemente crear una solicitud para enviar más datos que la especificación de longitud máxima. Es una buena manera de evitar que un usuario normal sobrepase un campo, pero es algo que necesita verificar de nuevo en el servidor.

+0

¿Quiere decir que TextBox-Control no tiene seguridad en el lado del servidor para limitar la propiedad MaxLength? Si te entiendo correctamente, me estás diciendo que, con el uso "normal" de mi aplicación web, puedo confiar en que un usuario normal no puede pasar por alto la longitud máxima especificada. – citronas

+0

El cuadro de texto no se verificará en el lado del servidor AFAIK. Y digo que para un usuario normal que no intenta hacer algo incorrecto funcionaría, pero no es seguro confiar en él. – Locksfree

+1

Me molestó bastante cuán fácilmente se podía evitar la limitación MaxLength si realmente querían. La forma en que resolví esto (en lugar de adjuntar un millón de validadores) fue extender la clase TextBox y anular la propiedad del texto. En el getter, si el valor MaxLength es mayor que 0, recorte el valor al valor MaxLength. – rossisdead

3

¿Puedo confiar en el hecho, de que la propiedad Text no contiene texto más largo que MaxLength?

No. Considere que es una función fácil de usar. Tendrá (como siempre) volver a verificar en el servidor. Y tal vez también verifique en JavaScript, dependiendo de para qué sirve.

Cuestiones relacionadas