【发布时间】:2012-01-30 21:54:57
【问题描述】:
我打赌我在这里使用了不正确的东西......
我的 MVC3 应用程序使用 Pagedown 来提供 JavaScript 文本编辑器、降价转换器和实时预览。我使用它的“santizer”对象来去除潜在危险的代码,就像指令中所建议的那样——你可以在demo 中看到它的工作原理。
javascript 代码如下所示:
(function () {
var converter1 = Markdown.getSanitizingConverter();
var editor1 = new Markdown.Editor(converter1);
editor1.run();
})();
此代码将标记的textarea 标记转换为编辑器,并使用消毒转换器去除不良内容。在某些方面,它似乎在起作用。示例:
-
marquee演示中的标签被正确剥离。 -
<p style="font-size:40em;">Super Big Text</p>被剥离为Super Big Text
但有些事情是不正确的......当我像这样插入一个假的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...等那样安全编码?
问题:我缺少什么来确保正确转换代码块和内联代码以便将它们作为安全字符串发布到服务器?
【问题讨论】:
标签: javascript html security post markdown