首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Markdown处理代码块(Pagedown)

使用Markdown处理代码块(Pagedown)
EN

Stack Overflow用户
提问于 2012-01-30 21:54:57
回答 1查看 1.3K关注 0票数 2

我打赌我在这里用错了东西..。

我的MVC3应用程序使用帕吉敦提供javascript文本编辑器、标记转换器和实时预览。我使用它的"santizer“对象来删除指令中建议的潜在危险代码--您可以在演示中看到它的工作。

javascript代码如下所示:

代码语言:javascript
复制
(function () {
    var converter1 = Markdown.getSanitizingConverter();
    var editor1 = new Markdown.Editor(converter1);
    editor1.run();
})();

此代码将标记的textarea标记转换为编辑器,并使用santizing转换器来去除坏东西。在某些方面,它似乎正在起作用。示例:

  • marquee标记,就像在演示中一样,它被正确地剥离了。
  • <p style="font-size:40em;">Super Big Text</p>被剥离为Super Big Text

但有些事不对..。当我插入像这样的假javascript时:

代码语言:javascript
复制
TEXT `<script type="text/javascript">alert("gotcha!");</script>` MORE TEXT

然后把表格贴出来,用黄色的屏幕显示死亡:

Request Validation has detected a potentially dangerous client input value, and processing of the request has been aborted.

这个字符串还没有像&lgt;script那样安全地编码.等等?

问题:我缺少什么来确保代码块和内联代码被正确地转换,以便它们可以作为一个安全的字符串发布到服务器上?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-01-31 10:38:23

我缺少什么来确保正确转换代码块和内联代码,以便将它们作为一个安全的字符串发布到服务器上?

没什么。或者至少什么也没有,假设您正在创建具有正确输出转义的textarea,如果使用Web窗体或MVC控件,您就会这样做。

无论应用程序是正确地处理输出转义还是易受攻击,都会出现类似元素标记的任何和所有输入内容的YSOD。它不是XSS问题的指示,它经常发生。

如果您希望允许包含类似元素标记的数据的用户输入(而且这没有本质上的危险--您只需要正确地获得输出转义),那么关闭请求验证。作为一个真正的安全特性,完全是假的,它只会给您一种虚假的安全感;微软正在推动它,这是令人失望的,因为它暴露了对HTML注入是什么的致命误解。

不幸的是,在ASP.NET 4下,禁用它会变得更加恼人。您必须用<httpRuntime requestValidationMode="2.0" />重置旧模型,然后将ValidateRequest="false"添加到页面中。

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9071369

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档