2010-03-10 175 views
5

TextBox控件提供了一个MaxLength属性,该属性允许插入该文本框的文本在客户端被限制为指定的字符数量。TextBox-Control的MaxLength属性有多可靠?

我的问题

  • 是这家酒店仅客户端和 因此浏览器的pedendent?
  • 我可以依赖这样的事实,即 Text属性包含文本长于 的MaxLength设置(仅适用于在MSDN 文章名为 DisplayModes)或者我手动必须 执行TextBox.Text。 SubString(0, DesiredMaxLength) ?
  • 这一切 如何处理禁用的java脚本?

回答

7

它不依赖于JavaScript,但并不安全。

任何人都可以使用javascript(例如XmlHttpRequest)发布请求,或者制作发送比最大长度规范更多数据的请求。这是阻止普通用户填充字段的一种好方法,但是无论如何,您需要仔细检查服务器。

+0

含义TextBox-Control没有限制MaxLength属性的服务器端安全性?如果我正确理解你,你告诉我,在我的web应用程序中使用“正常”的用法,我可以依靠普通用户无法绕过指定的最大长度? – citronas 2010-03-10 11:04:58

+0

该文本框不会检查服务器端AFAIK。我的意思是说,对于一个普通用户而言,不会做任何错误的事情,它会起作用,但依靠它是不安全的。 – Locksfree 2010-03-10 11:43:20

+1

我非常不安,如果他们真的想要,可以轻松解决MaxLength限制。我解决这个问题(而不是附加一百万验证器)的方式是扩展TextBox类并覆盖Text属性。在吸气剂中,如果MaxLength值大于0,我将该值修剪为MaxLength值。 – rossisdead 2010-07-23 18:38:27

3

我可以依靠的事实,该文本 属性包含超过 的MaxLength没有文字不再?

否。考虑它是用户友好的功能。您将(一如既往)重新检查服务器。也许还可以检查JavaScript,具体取决于它的用途。