我有一个网络表单,允许用户将文本上传为 Markdown。
Markdown 在服务器上转换为 Html(使用 Markdig)并存储。
当显示用户上传的转换后的 Html 时,我是否应该对内容进行 @Html.Encode - 该项目使用 c#,MVC 5/razor 并启用了请求验证。
最佳答案
一般要看markdown转换器。
默认情况下 Markdig 不会转义 html。但是,您可以在管道中使用 DisableHtml
函数来转义之前扩展未处理的所有剩余 HTML 可编码字符串。这也应该比让反 xss 函数再次运行字符串提供更好的性能。
看例子:
var pipeline = new MarkdownPipelineBuilder().DisableHtml().Build();
var result = Markdig.Markdown.ToHtml("<a href='javascript:evil()'>hello</a>", pipeline);
关于c# - 渲染作为 Markdown 上传并将服务器端转换为 Html 的 Html 是否安全?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43090491/