ASP.NET - пользователи имеют прямой контроль над элементом управления Label: это безопасно? - PullRequest
0 голосов
/ 25 июня 2009

Я сделал страницу, где что-то, введенное в TextBox, отображается «как есть» на элементе управления Label

Так как я новичок, я только что сделал:

Label1.Text = TextBox1.Text.ToLower();

Это опасно? Я пытался что-то, но кажется, что элементы управления Label принимает только текст, я был уверен, что это безопасно

Может быть, это опасно, если пользователь вставит какую-нибудь управляющую команду?

Ответы [ 2 ]

4 голосов
/ 25 июня 2009

Да, безусловно, это так. Ничто из того, что пользователь вводит специально с общедоступной веб-страницы, нельзя доверять.

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

В аренду HtmlEncode, как предложено RichardOD . Вы можете использовать Microsoft AntiXSS библиотека для очистки ввода пользователя.

3 голосов
/ 25 июня 2009

Почему бы не сделать Label1.Text = Server.HtmlEncode (TextBox1.Text.ToLower ()); Вы можете узнать больше об этом здесь . Невыполнение этого требования может сделать вас уязвимым для межсайтового скриптинга в зависимости от конфигурации вашего приложения.

Так что в ответ на это опасно - это зависит. Хотя ASP.NET проверяет пользовательский ввод, чтобы исключить HTML / сценарии, это может быть отключено. Лучше не рисковать! Подробнее о проверке запросов ASP.NET можно узнать здесь .

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