если я всегда использую <%: вместо <% =

Я знаю что <%: html.encode вещь, но существует много ситуаций, когда я уверен, что не должен кодировать, итак, почему я должен напрасно тратить время при кодировании материала, что я на 100% уверен, что это не требует, чтобы быть закодированным как, например, <%:Url.Action("Index") %> или <%: Model.Id %> (имеет интервал типа)?

6
задан Omu 20 July 2010 в 09:43
поделиться

6 ответов

Лично я использую его только для вещей, которые, как я знаю, нужно кодировать. Нет необходимости использовать его для целочисленных типов <%: Model.Id%> , но это только личные предпочтения.

3
ответ дан 8 December 2019 в 14:39
поделиться

Слепок кода : является частью веб-компилятора ASP.NET 4.0 и не просто вызывает Html.Encode () . Он определяет, закодирована ли уже строка (если выражение возвращает IHtmlString , то оно, вероятно, не будет закодировано).

Это означает, что его можно безопасно использовать при вставке фактических данных или при вставке HTML из вспомогательного метода некоторого типа (если вы пишете свои собственные вспомогательные методы, они всегда должны возвращать IHtmlString начиная с MVC 2) .

Что касается того, всегда ли вы его используете, конечно, нет. Но я бы предпочел не думать об этом слишком много и буду счастлив, зная, что я прошел некоторый путь к отражению XSS-атак с небольшими усилиями; поэтому я почти всегда им пользуюсь.

Также рекомендуется возвращать MvcHtmlString из вспомогательных методов HTML, а не строку .

8
ответ дан 8 December 2019 в 14:39
поделиться

Один пример, когда вы не захотите использовать <%: - это строки, которые приходят из вашего файла ресурсов и включают символы экранирования HTML. Я не думаю, что можно сделать однозначное заявление о том, что вы должны всегда использовать <%:.

4
ответ дан 8 December 2019 в 14:39
поделиться

<%: model%> эквивалентно <% = Html.Encode (model)%>

с использованием <%: экономит нажатия клавиш и повышает производительность,

, но иногда вам нужно сделать <% = (не кодировать то, что вы показываете на своей странице)

1
ответ дан 8 December 2019 в 14:39
поделиться

Одним из преимуществ кодирования в HTML является то, что оно делает страницы W3C действительными согласно соответствующему типу данных. Так зачем вообще проверять документ?

Для ответа на этот вопрос, пожалуйста, проверьте: http://validator.w3.org/docs/why.html

Краткая проверка HTML сохраняет много времени позже в цикле разработки и это хорошая практика.

0
ответ дан 8 December 2019 в 14:39
поделиться

Это проще, если вы используете только один тип, и делает код более чистым. Кроме того, вы никогда не знаете, кто изменит код, и делает из простого оператора «100%», не очень 100% оператора :-)

Обычно в веб-среде производительность таких вещей не является проблемой.

Я бы предложил использовать только «<%:» в качестве руководства по разработке команды. просто чтобы быть в безопасности.

0
ответ дан 8 December 2019 в 14:39
поделиться
Другие вопросы по тегам:

Похожие вопросы: