安全编码使用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))
是否有其他可以使用的内置或流行库?
答案 0 :(得分:1)
AFAIK这样做没有“最佳实践”。你正在与框架作斗争。 MVC旨在将模型(包属性)渲染到视图(模板)中。
理论上,您可能能够从WYSIWYG输出中删除源自用户输入的所有内容(即可能导致XSS和SQL注入的内容),清理碎片并将其重新放入.I不会这样做。