2010-03-10 36 views
5

Điều khiển Hộp văn bản cung cấp thuộc tính MaxLength, cho phép văn bản chèn vào TextBox đó được khách hàng giới hạn trong số lượng ký tự được chỉ định.Độ tin cậy của thuộc tính MaxLength của TextBox-Control là bao nhiêu?

Câu hỏi của tôi:

  • là khách sạn này chỉ client-side và do đó trình duyệt pedendent?
  • Tôi có thể dựa vào thực tế, rằng thuộc tính Text không chứa văn bản dài hơn maxlength được thiết lập (chỉ dành cho các DisplayModes có tên trong MSDN bài viết) hoặc để tôi bằng tay phải thực hiện một TextBox.Text. SubString (0, DesiredMaxLength) ?
  • Làm thế nào để tất cả điều này hoạt động với tập lệnh java bị tắt?

Trả lời

7

Nó không phụ thuộc vào javascript nhưng điều đó không làm cho nó an toàn.

Bất kỳ ai cũng có thể đăng yêu cầu bằng cách sử dụng javascript (ví dụ XmlHttpRequest) hoặc chỉ cần tạo yêu cầu gửi nhiều dữ liệu hơn thông số kỹ thuật có độ dài tối đa. Đó là một cách tốt để ngăn chặn một người dùng bình thường từ trên một lĩnh vực nhưng nó là một cái gì đó bạn cần phải kiểm tra lại trên máy chủ anyway.

+0

Có nghĩa là TextBox-Control không bảo mật phía máy chủ để giới hạn thuộc tính MaxLength? Nếu tôi hiểu bạn một cách chính xác, bạn đang nói với tôi, rằng với việc sử dụng "bình thường" từ bên trong webapp của tôi, tôi có thể tin tưởng rằng một người dùng bình thường không thể bỏ qua maxlength được chỉ định? – citronas

+0

Hộp văn bản sẽ không kiểm tra ở phía máy chủ AFAIK. Và tôi nói rằng đối với một người dùng bình thường không cố gắng làm bất cứ điều gì sai nó sẽ làm việc nhưng nó không an toàn để dựa vào nó. – Locksfree

+1

Tôi khá băn khoăn về việc người ta có thể dễ dàng vượt qua giới hạn MaxLength nếu họ thực sự muốn. Cách tôi đã đi xung quanh sửa chữa này (thay vì đính kèm một triệu validators) đã được mở rộng lớp TextBox và ghi đè lên các tài sản văn bản. Trong getter, nếu giá trị MaxLength lớn hơn 0, tôi cắt giá trị thành giá trị MaxLength. – rossisdead

3

Tôi có thể dựa vào thực tế rằng thuộc tính Văn bản không chứa văn bản dài hơn MaxLength?

No. Hãy xem xét tính năng thân thiện với người dùng. Bạn sẽ có (như mọi khi) kiểm tra lại trên máy chủ. Và cũng có thể kiểm tra trong JavaScript, tùy thuộc vào những gì nó cho.

Các vấn đề liên quan