Cấp bậc tác giả:

DOTNET

Hướng dẫn Fix Lỗi "A potentially dangerous Request.Form value was detected from the client"

Được viết bởi webmaster ngày 18/04/2013 lúc 11:04 PM
Trong quá trình lập trình asp.net khi sử dụng text editor để nhập nội dung có thể bạn sẽ gặp lỗi
  • 0
  • 16523

Hướng dẫn Fix Lỗi "A potentially dangerous Request.Form value was detected from the client"

Trong quá trình lập trình asp.net khi sử dụng text editor để nhập nội dung có thể bạn sẽ gặp lỗi kiểu như sau :
A potentially dangerous Request.Form value was detected from the client (ctl00$CC$txtnoidung="<p>dotnet.vn</p>"

erroreditor.gif

Nguyên nhân:
.NET framework đưa ra lỗi do trong nội dung của bạn có nội dung như mã HTML ví dụ < >, có thể gây nguy hại cho trang của bạn
Có thể tham khảo thêm tại trang  www.asp.net/learn/whitepapers/request-validation/.

Để khắc phục bạn có thể làm theo cách dưới đây:
Chú ý, cách này không áp dụng cho .NET framework 1.0

Bước 1: 
Hủy bỏ request validation trên trang bạn đang làm việc bằng thuộc tính ValidateRequest="false" trên phần khai báo <%@ Page ...
Ví dụ 
<%@ Page Language="C#" AutoEventWireup="false" Codebehind="MyForm.aspx.cs" Inherits="Proj.MyForm"%>
thay bằng
<%@ Page Language="C#" AutoEventWireup="false" Codebehind="MyForm.aspx.cs" Inherits="Proj.MyForm" ValidateRequest="false"%>

Bạn có thể khai báo trên file web.config để áp dụng cho toàn website, tuy nhiên cần chú ý nếu làm theo cách này. Khai báo của bạn trong web.config sẽ có dạng
<system.web>
<pages validateRequest="false" /> 
</system.web>

Bước 2: 
Để hiển thị mã html trên trang web bạn cần chuyển đổi các ký tự của html ví dụ "<" thành "&lt;" bằng hàm HttpUtility.HtmlEncode hoặc Server.HtmlEncode
Và mã lệnh của bạn có dạng
MyLabel.Text = HttpUtility.HtmlEncode(MyTextBox.Text)

Chú ý: cách này áp dụng cho .NET Framework 1.1, .NET Framework 2.0 và .NET Framework 3.5,

Đối với .NET Framework 4.0 (Visual Studio 2010), bạn cần thực hiện thêm 1 bước nữa là thêm thẻ httpRuntime vào web.config trong thẻ system.web với thuộc tính requestValidationMode="2.0"
Khai báo của bạn trong web.config sẽ có dạng
<system.web>
<httpRuntime requestValidationMode="2.0" />
</system.web>

Nguồn bài viết: Dngaz.com

BÌNH LUẬN BÀI VIẾT

Bài viết mới nhất

LIKE BOX

Bài viết được xem nhiều nhất

HỌC HTML