2010-03-10 91 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,具體取決於它的用途。