Есть ли необходимость использовать Html.Encode для внутреннего сайта? - PullRequest
1 голос
/ 12 октября 2010

У меня проблемы с Html.Encode и пользователями, которые хотят использовать специальные символы.Во-первых, символы заменяются HTML-кодами и поэтому не отображаются должным образом.И затем, если текст позднее редактируется и повторно отправляется, возникает исключение при повторной отправке этих HTML-кодов.

Учитывая, что это сайт интрасети и возможность преднамеренной атаки практически-существующий, есть ли риск не использовать Html.Encode?Есть ли вероятность, что кто-то непреднамеренно предоставит некоторые специальные символы, которые вызывают проблемы?

Или есть лучший способ обойти эту проблему?

Ответы [ 3 ]

1 голос
/ 12 октября 2010

Учитывая, что это интранет-сайт и возможность преднамеренного атака почти не существует, есть там действительно любой риск, чтобы не использовать Html.Encode

Да, да и снова да. Всегда есть риск, когда кто-то вводит специальные символы в поля ввода. Золотое правило веб-разработки - никогда не доверять пользовательскому вводу и всегда кодировать все, что может поступить от пользовательского ввода.

0 голосов
/ 12 октября 2010

Сначала символы заменяются html-кодами и поэтому не отображаются должным образом

Вы используете двойное кодирование.Вы действительно хотите Html.Encode для отображения HTML-тегов, введенных пользователем вообще.Если только вы на самом деле не хотите, чтобы такие элементы, как <ul><li>, представляли собой маркированный список вместо отображения тегов.

И затем, если текст позднее редактируется и повторно отправляется, возникает исключение, когда эти HTMLкоды повторно отправляются.

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

Учитывая, что это сайт в интрасети и возможность преднамеренной атаки практически не существует, существует ли какой-либо рискне использовать Html.Encode?

В глубине души Вы уже знаете, что представление о безопасности неверно;)

0 голосов
/ 12 октября 2010

Проверяйте везде, где вы вызываете Html.Encode, поскольку это звучит так, как будто вы дважды кодируете свои строки (возможно, кодирование при сохранении и при отображении или кодирование в шаблоне / частичном и кодирование снова).

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

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