C# 如何在ASP.NET中安全地从所见即所得编辑器呈现HTML内容?
对于在ASP.NET/MVC5中使用所见即所得编辑器创建的内容的输出,安全编码的最佳实践是什么?我希望与格式化和布局等相关的标记能够呈现为HTML,但同时避免XSS攻击。编辑是Summernote,这并不重要 显然,这是非常不安全的:C# 如何在ASP.NET中安全地从所见即所得编辑器呈现HTML内容?,c#,asp.net,security,C#,Asp.net,Security,对于在ASP.NET/MVC5中使用所见即所得编辑器创建的内容的输出,安全编码的最佳实践是什么?我希望与格式化和布局等相关的标记能够呈现为HTML,但同时避免XSS攻击。编辑是Summernote,这并不重要 显然,这是非常不安全的: @Html.Raw(Model.Content); 这是完全错误的: @Model.Content 而微软的Sanitizer则走得太远了,删除了几乎所有随所见即所得编辑器添加的格式 @Html.Raw(Microsoft.Security.Applicati
@Html.Raw(Model.Content);
这是完全错误的:
@Model.Content
而微软的Sanitizer则走得太远了,删除了几乎所有随所见即所得编辑器添加的格式
@Html.Raw(Microsoft.Security.Application.Sanitizer.GetSafeHtmlFragment(Model.Content))
有没有其他内置的或流行的库可以使用?AFAIK没有这样做的“最佳实践”。你在和框架抗争。MVC设计用于将模型(包属性)渲染到视图(模板)中
从理论上讲,您可能能够从所见即所得输出中去掉所有来自用户输入的内容(即可能导致XSS和SQL注入的内容),清理这些内容,然后将它们放回。我不会那样做。我明白你反对框架的观点,但我希望管理员用户能够编辑页面内容,使用所见即所得编辑器似乎是最简单的方法。