如何从ASP.NET中的WYSIWYG编辑器安全地呈现HTML内容?

时间:2015-06-19 23:09:51

标签: c# asp.net security

安全编码使用ASP.NET / MVC5中的WYSIWYG编辑器创建的内容输出的最佳做法是什么?我希望与格式和布局等相关的标签呈现为HTML,但同时避免XSS攻击。编辑是Summernote,而不是这个问题。

显然,这是非常不安全的:

@Html.Raw(Model.Content);

这是完全错误的:

@Model.Content

并且Microsoft Sanitizer走得太远了,删除了几乎所有使用WYSIWYG编辑器添加的格式。

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

是否有其他可以使用的内置或流行库?

1 个答案:

答案 0 :(得分:1)

AFAIK这样做没有“最佳实践”。你正在与框架作斗争。 MVC旨在将模型(包属性)渲染到视图(模板)中。

理论上,您可能能够从WYSIWYG输出中删除源自用户输入的所有内容(即可能导致XSS和SQL注入的内容),清理碎片并将其重新放入.I不会这样做。