2015-06-19 44 views
1

在ASP.NET/MVC5中使用WYSIWYG編輯器創建的內容輸出安全編碼的最佳做法是什麼?我希望與格式和佈局等相關的標籤呈現爲HTML,但同時避免XSS攻擊。編輯是Summernote,這並不是重要的。如何安全地從ASP.NET中的所見即所得編輯器呈現HTML內容?

顯然,這是非常不安全的:

@Html.Raw(Model.Content); 

這是完全錯誤的:

@Model.Content 

和Microsoft消毒過猶不及的其他方式,去除與添加的幾乎所有格式所見即所得編輯器。

@Html.Raw(Microsoft.Security.Application.Sanitizer.GetSafeHtmlFragment(Model.Content)) 

是否有另一個內置或流行的庫可以使用?

回答

1

AFAIK這樣做沒有「最佳實踐」。你正在與框架作鬥爭。 MVC旨在將模型(一個包的屬性)渲染爲視圖(模板)。

理論上,您可能會從您的所見即所得輸出中的所有內容中刪除所有來自用戶輸入(即可能導致XSS和SQL注入的內容)的內容,對這些內容進行清理並將其重新放入。我不會那樣做。

+0

我可以看到你關於與框架戰鬥的觀點,但我希望管理員用戶能夠編輯頁面內容,而且似乎使用WYSIWYG編輯器是最簡單的方法。 – Unw0und

相關問題