0

我已经制作了一个消息系统,用户可以在其中相互发送消息,他们也可以将文件作为消息中的附件发送(它就像简单的电子邮件系统)。它允许用户发送 HTML 字符,它们将通过浏览器呈现,例如,如果他们输入

<b>Hello</b>

它会呈现为 Hello

它工作正常,但是如果用户输入我将面临一个问题

<iframe src="anywebsite"><iframe>

然后它也会由浏览器呈现。

我怎样才能只允许浏览器渲染某些特定字符,其余字符将显示为普通文本我正在使用 Asp.net MVC3

在我的模型类中,我添加
[AllowHtml]了允许 HTML 字符的属性

4

1 回答 1

2

您可以使用AntiXss 库

例如:

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

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

您还可以查看 AntiSamy 项目

于 2012-04-06T07:47:08.120 回答