Рейтинг:
2
Richard Deeming
У вас есть уязвимость с более высоким риском: вы написали метод, который заставит вас написать код, уязвимый для SQL-инъекция[^].
Вам нужно переписать свой GetData
метод, позволяющий правильно передавать параметры, а не запихивать их в сам запрос. Вы также должны убедиться, что вы не принимаете запросы непосредственно от пользователя.
Чтобы предотвратить уязвимости XSS, необходимо правильно кодировать любой вывод в зависимости от того, где он отображается. Например, если вы отображаете его как часть HTML-разметки, вам нужно кодировать его в HTML.
Многие элементы управления WebForms имеют свойства, которые позволяют указать, что их выходные данные должны быть закодированы. Например:
BoundField.Свойства Htmlencode (Системы.Веб.Пользовательского интерфейса.WebControls) | Майкрософт Документы[^]
Буквальный.Свойство Mode (System.Web.UI.WebControls) | Microsoft Docs[^]
До тех пор, пока вы используете эти свойства правильно и никогда не выводите некодированные данные, которые могут контролироваться или затрагиваться пользователем, вы должны избегать любых уязвимостей XSS.
Все, что вы хотели знать о SQL-инъекции (но боялись спросить) | Трой Хант[^]
Как я могу объяснить SQL-инъекцию без технического жаргона? | Обмен Стеками Информационной Безопасности[^]
Шпаргалка по параметризации запросов | OWASP[^]
DGKumar
Привет Ричард,
Даже несмотря на то, что если я использую параметризованный запрос также при получении данных из БД и попытке сохранить их в DataGrid DataSorce, флажок показывает, что данные источника данных не очищаются.
ДГ.Источник данных = ДС;
данные строки ДС должны santized. как это сделать, я не мог найти решения.
Richard Deeming
То компонента DataGrid[^] control-это более старый элемент управления, который не поддерживал автоматическое кодирование выходных данных.
Вам следует обратить внимание на переход на GridView[^] управление и настройка Функция htmlencode[^] собственность на BoundField
столбцы.
Если вы будете придерживаться DataGrid
, вам нужно будет переключиться на использование a TemplateColumn[^], и использовать привязку Literal
внутри шаблона элемента с правильным Mode
значение, установленное для обеспечения того, чтобы выходные данные были закодированы в HTML.