Json.encode специальные символы> MVC3

У меня есть приложение JavaScript, в котором я использую клиентские шаблоны (underscore.js , Backbone.js).

Данные для начальной загрузки страницы привязываются к странице следующим образом (файл .cshtml Razor):

<div id="model">@Json.Encode(Model)</div>

Механизм Razor выполняет экранирование, поэтому, если Модель имеет значение

new { Title = "<script>alert('XSS');</script>" }

, на выходе мы have:

<div id="model">{&quot;Title&quot;:&quot;\u003cscript\u003ealert(\u0027XSS\u0027)\u003c/script\u003e&quot;}</div>

Что после операции «синтаксического анализа»:

var data = JSON.parse($("#model").html());

у нас есть данные объекта с полем «Заголовок» ровно «» !

Когда это идет в шаблон подчеркивания, он предупреждает.

Каким-то образом \ u003c- подобные символы обрабатываются как правильные символы « <».

Как мне избежать символов « <» в < и > из БД (если они каким-то образом туда попали)?

Может быть, я могу настроить Json.Encode сериализация для экранирования этих символов? Может быть, я могу настроить Entity Framework , который я использую, для автоматического исключения этих символов абсолютно все время при получении данных из БД?

8
задан Roman 22 February 2012 в 23:34
поделиться