Thứ Bảy, 13 tháng 4, 2013

[Hướng dẫn] khắc phục lỗi lưu CSDL từ FCKeditor


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>www.itclubviet.com</p>"


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="vb" AutoEventWireup="false" Codebehind="MyForm.aspx.vb" Inherits="Proj.MyForm"%>
thay bằng
<%@ Page Language="vb" AutoEventWireup="false" Codebehind="MyForm.aspx.vb" 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>

Chúc bạn thành công
Tham khảo các nguồn:
http://www.cryer.co.uk/brian/mswinswdev/ms_vbnet_server_error_potentially_dangerous.htm
http://msdn.microsoft.com/en-us/library/ms972967.aspx
Share this post
  • Share to Facebook
  • Share to Twitter
  • Share to Google+
  • Share to Stumble Upon
  • Share to Evernote
  • Share to Blogger
  • Share to Email
  • Share to Yahoo Messenger
  • More...

0 nhận xét

:) :-) :)) =)) :( :-( :(( :d :-d @-) :p :o :>) (o) [-( :-? (p) :-s (m) 8-) :-t :-b b-( :-# =p~ :-$ (b) (f) x-) (k) (h) (c) cheer

 
© Download do an khoa luan tai lieu
Designed by BlogThietKe Cooperated with Duy Pham
Released under Creative Commons 3.0 CC BY-NC 3.0
Posts RSSComments RSS
Back to top