我制作了一个消息系统,用户可以在其中发送消息,他们也可以在消息中将文件作为附件发送(就像简单的电子邮件系统一样)。它允许用户发送HTML字符,它们将通过浏览器呈现,例如,如果他们进入
<b>Hello</b>
它将呈现为 您好
它工作正常,但如果用户输入
,我将面临一个问题<iframe src="anywebsite"><iframe>
然后它也会被浏览器呈现。
我如何只允许某些特定字符由浏览器呈现,其余部分将显示为普通文本 我使用的是Asp.net MVC3
在我的模特课中,我添加了
[AllowHtml]
属性允许HTML字符
答案 0 :(得分:2)
您可以使用AntiXss library:
例如:
@Html.Raw(Sanitizer.GetSafeHtmlFragment("<b>Hello</b>"))
@Html.Raw(Sanitizer.GetSafeHtmlFragment("<iframe src=\"anywebsite\"><iframe>"))
第一个将以粗体显示Hello文本,而第二个不会呈现任何内容,因为它不被认为是安全的。
您还可以结帐AntiSamy project。