2012-04-06 67 views
0

我已经制作了一个消息系统,用户可以在其中发送消息,他们也可以发送文件作为消息中的附件(就像简单的电子邮件系统一样)。它允许用户发送HTML字符,如果他们进入允许并限制一些HTML字符

<b>Hello</b>

它会呈现为 你好

它的做工精细,他们会通过浏览器渲染,对于例如,但我面临的一个问题,如果用户输入

<iframe src="anywebsite"><iframe> 

那么它也会被浏览器渲染。

我怎么能只允许通过其他浏览器中呈现一些特殊的字符将显示为普通文本 我使用Asp.net MVC3

在我的模型类我已经添加
[AllowHtml]属性允许HTML人物

回答

2

您可以使用AntiXss library

例如:

@Html.Raw(Sanitizer.GetSafeHtmlFragment("<b>Hello</b>")) 
@Html.Raw(Sanitizer.GetSafeHtmlFragment("<iframe src=\"anywebsite\"><iframe>")) 

第一个将以粗体显示Hello文本,而第二个将不呈现任何内容,因为它不被认为是安全的。

您还可以结帐AntiSamy project

+0

在这段代码中,iframe没有渲染好,我想将它显示为纯文本 – 2012-04-06 10:41:04

+0

目前没有任何渲染 – 2012-04-06 10:44:50