c# - 为什么 MarkdownSharp 不对我的 HTML 进行编码?

标签 c# asp.net-mvc-2 markdown markdownsharp

在我看来,Markdown 的更大目标之一是防止用户直接输入可能格式错误的 HTML。

嗯,这在 MarkdownSharp 中并不适合我。

当您在“abc”之后立即有额外的换行符时,此示例可以正常工作... enter image description here

但是当那个换行符不存在时,我认为它仍然应该是 HtmlEncoded,但是这里没有发生这种情况...... enter image description here

在幕后,呈现的标记来自 iframe。这是它背后的代码......

<% 
var md = new MarkdownSharp.Markdown();
%>
<%= md.Transform(Request.Form[0]) %>

肯定是我遗漏了什么。哦,我使用的是 v1.13(撰写本文时的最新版本)。


编辑(这是对 StackOverflow 实现的测试)

美国广播公司

这不应该是红色的

最佳答案

对于那些不想使用 Steve Wortham 的定制解决方案的人,我已经向 MarkdownSharp 人员提交了一个问题和建议的修复:http://code.google.com/p/markdownsharp/issues/detail?id=43

如果您下载我附加的 Markdown.cs 文件,您会发现一个可以设置的新选项。它将阻止 MarkdownSharp 在代码块中重新编码文本。

只是不要忘记在将输入传递到 markdown 之前对输入进行 HTML 编码,而不是之后。

另一种解决方案是像 Stack Overflow 那样将 HTML 标记列入白名单。在将内容传递给 markdown 之后,您会执行此操作。

有关更多信息,请参阅:http://www.CodeTunnel.com/blog/post/24/mardownsharp-and-encoded-html

关于c# - 为什么 MarkdownSharp 不对我的 HTML 进行编码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4864255/

相关文章:

c# - 构建 Service Fabric Web Api 时出现错误,无法从 Fabric.StatelessServiceContext 转换为 Fabric.ServiceInitializationParameters

c# - yield 和 List.AsEnumerable 之间的区别

c# - 如何删除 XMLDocument 中的特定属性?

c# - 如果不能更改,为什么可以更改不可变字符串变量?

jquery - ASP.NET MVC2 使用 Controller 读取 JSON 数据

templates - MVC 模板化助手 - DropDown

asp.net-mvc - 支持使用 ASP.NET MVC 2.0 进行嵌套模型和类验证

c# - 从字符串中删除 Markdown 标签

python - 使用指定的 css Markdown 到 html

c# - 渲染作为 Markdown 上传并将服务器端转换为 Html 的 Html 是否安全?