Как сделать одинарную цитату безопасным способом - PullRequest
2 голосов
/ 07 марта 2011

Я видел в обучающем видео, что мы должны использовать Html.Encode в наших представлениях, чтобы предотвратить злонамеренные инъекции. Однако, когда текст, который я кодирую, содержит символ '(например, Dog), вывод в браузере будет Dog # 39; s. Я бы подумал, что каждый потенциально опасный символ будет преобразован в некоторый безопасный код, который браузер будет отображать правильно. Разве это не так? Как я могу получить отображение в браузере, но безопасным способом HTML?

Ответы [ 2 ]

6 голосов
/ 07 марта 2011

@ в Razor автоматически кодирует для вас, что означает, что вы, вероятно, сделали двойное кодирование. Пример:

@Html.Encode("This is \"safe\"")

более или менее совпадает с

@{Response.Write(Html.Encode(Html.Encode("This is \"safe\"")));}

Не знаю, работает ли последний в Razor.

5 голосов
/ 07 марта 2011

Если вы используете ASP.NET MVC 2 <%:%> уже кодирует значение для вас В Razor (MVC 3) @ кодирует значения для вас, поэтому вам не нужно переносить вывод в Html.Encode

Убедитесь, что вы не используете двойное кодирование

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