Могу поспорить, что здесь что-то неправильно использую ...
Мое приложение 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
... и т. Д.?
Вопрос: Чего мне не хватает, чтобы обеспечить правильное преобразование блоков кода и встроенного кода, чтобы они могли быть отправлены на сервер в виде безопасной строки?