2012-01-24 47 views
18

Tôi đang làm cho một ứng dụng trong MVC3, tôi đang lưu trữ một chuỗi trong cơ sở dữ liệu ở định dạng nàyC# HTML Chuỗi hiển thị

<a href='path'>Text</a> Happy 

Các lĩnh vực được tiết kiệm đúng nhưng tôi có để hiển thị nó trong trang web với liên kết hyper như

Text Chúc mừng

nhưng hiện tại nó được hiển thị như

<a href='path'>Text</a> Happy 

Tôi làm cách nào để hiển thị chuỗi này dưới dạng HTML trên trang web?

+2

Có lẽ đây không phải là người dùng tạo ra các mảnh html trong trường hợp của bạn, nhưng chắc chắn rằng bạn hiểu những rủi ro tiêm kịch bản khi bạn làm điều này. –

+0

Vì vậy, bạn đang mắc lỗi trong phương thức "lấy văn bản từ db" (MrObvious). Bạn có thể dán mã của mình vào đây không? –

Trả lời

34

Nếu bạn đang sử dụng Razor mẫu động cơ:

@Html.Raw(mystring) 
0

tôi sẽ thực sự lời khuyên chống lại làm điều đó bởi vì nó rất cứng để bảo vệ chống lại các vấn đề về tập lệnh.

Mặc dù vậy, nếu bạn nghĩ rằng có thể được quản lý, bạn sẽ có thể sử dụng @ Html.Raw để hiển thị văn bản mà không cần thoát.

0

Nếu bạn không sử dụng dao cạo,

string text = "<a href='path'>Text</a> Happy";

Sau đó, bạn muốn <%= text %>, không <%: text %>

Như những người khác đã nói, đây không được xem là thực hành lớn do tiêm HTML, nhưng nó có vẻ như tiêm HTML là ý định của bạn.

+0

Xin lỗi nhưng tôi đang sử dụng Dao cạo –

2

của nó tốt hơn bạn Mã hóa HTML trước khi lưu trữ nó vào cơ sở dữ liệu .. Nếu bạn đang sử dụng .Net Framework 4 thử này

String TestString = "This is a <Test String>."; 
String EncodedString = Server.HtmlEncode(TestString); 

Xem msdn

Nếu không sử dụng anti xss library

workes của nó như một phép thuật và thực sự dễ thực hiện .. Un-Encoded không chỉ nguy hiểm vì nó có thể gây ra các cuộc tấn công XSS mà còn gây ra các vấn đề với việc hiển thị trên trang fornt html.

Hy vọng nó giúp ..

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