2012-04-06 109 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