Что делает новый синтаксис кодирования <%:%> в Visual Studio 2010? - PullRequest
6 голосов
/ 16 апреля 2010

В последней записи Скотта Хансельмана о новых функциях VS 2010 упоминается «новый синтаксис кодирования <%:%>». Что оно делает? Поиск этих тегов в Google не представляется возможным ...

Спасибо

Адриан

Ответы [ 5 ]

8 голосов
/ 16 апреля 2010

Выводит HTML с закодированными объектами. Это короткая рука для

<%= HttpUtility.HtmlEncode("Some string") %>

Кроме того, его можно расширить, добавив к нему более крутые вещи, например, защиту вывода от XSS, как продемонстрировал Фил Хаак .

Фил Хаак , Скотт Гатри и Скотт Хансельман широко обсуждали новые и улучшенные функции в .NET 4.

4 голосов
/ 16 апреля 2010

Он автоматически закодирует HTML-код во вложенном выражении.

Итак ...

<%: yourString %>

... эквивалентно ...

<%= HttpUtility.HtmlEncode(yourString) %>

См. Следующую ссылку MSDN для получения дополнительной информации:

1 голос
/ 16 апреля 2010
1 голос
/ 16 апреля 2010

Я думаю, что это гарантирует, что текст, содержащийся внутри, дезинфицируется, так что сценарий Java не может быть введен на страницу

так что если у вас есть

userdata = alert ("textstring")

<%= userdata %>

покажет окно сообщения на странице

<%: userdata %>

покажет текст «alert (« texttring »)»

0 голосов
/ 16 апреля 2010

Его цель - помочь предотвратить атаки XSS с помощью кодирования HTML.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...