【问题标题】:How reliable is the MaxLength property of the TextBox-Control?TextBox-Control 的 MaxLength 属性有多可靠?
【发布时间】:2010-03-10 10:55:02
【问题描述】:

TextBox 控件提供了一个MaxLength 属性,该属性允许在客户端将可插入到该TextBox 中的文本限制为指定数量的字符。

我的问题

  • 此属性是否仅在客户端和 因此依赖于浏览器?
  • 我可以相信这样一个事实,即 Text 属性包含的文本不超过 MaxLength 已设置(仅适用于 MSDN 中命名的 DisplayModes 文章)还是我必须手动 执行 TextBox.Text.SubString(0, 所需最大长度) ?
  • 这一切是怎么回事 使用禁用的 java 脚本?

【问题讨论】:

    标签: c# asp.net validation textbox maxlength


    【解决方案1】:

    它不依赖于 javascript,但这并不安全。

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

    【讨论】:

    • 意思是TextBox-Control没有服务器端安全限制MaxLength属性?如果我理解正确,您是在告诉我,通过我的 web 应用程序中的“正常”使用,我可以相信普通用户无法绕过指定的 maxlength?
    • 文本框不会在服务器端 AFAIK 上检查。我的意思是,对于一个不试图做错任何事情的普通用户来说,它会起作用,但依赖它并不安全。
    • 如果他们真的想要绕过 MaxLength 限制,我感到非常不安。我解决这个问题的方法(而不是附加一百万个验证器)是扩展 TextBox 类并覆盖 Text 属性。在 getter 中,如果 MaxLength 值大于 0,我将值修整为 MaxLength 值。
    【解决方案2】:

    我可以相信文本 属性不包含超过 最大长度?

    没有。将其视为用户友好功能。您将(一如既往)重新检查服务器。也许还可以签入 JavaScript,具体取决于它的用途。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-07-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-05-20
      • 1970-01-01
      • 2021-05-29
      相关资源
      最近更新 更多