Как избежать межсайтового скриптинга в ASP.NET - PullRequest
0 голосов
/ 03 мая 2011

У меня есть форма ASP.NET, которая имеет текстовое поле.Пользователь может вводить любые символы, цифры и т. Д. Я не должен ограничивать пользователя в фильтрации опасных символов.Но мне нужно предотвращать межсайтовый скриптинг.

Пользователь может ввести любой текст, например, alert ('hi'), например так.

Данные должны быть сохранены как их в БД.Также его следует вернуть назад и отобразить в виде метки в том виде, в каком оно есть.

Как добиться этого без межсайтового скриптинга

1 Ответ

1 голос
/ 03 мая 2011

Ну, я думаю, вы должны учитывать некоторые ограничения на то, что пользователям разрешено вводить. Вы не хотите нулевых байтов или непечатных символов, не так ли? Даже если вы принимаете больше, чем буквенно-цифровые значения, вы должны решить, какие символы разрешены, и исключить остальные, используя простое регулярное выражение (конечно, с начальным и конечным якорями).

Тогда способ предотвращения XSS - это кодировать значение всякий раз, когда вы его отображаете. Существует множество способов сделать это, но лучше всего, если вы спросите меня, использовать класс AntiXSS Microsoft Web Protection Library . Вы можете закодировать вывод в зависимости от того, визуализируете ли вы его в элементах HTML, атрибутах, JavaScript и т. Д.

...