Являются ли ASP.net __EVENTTARGET и __EVENTARGUMENT подверженными SQL-инъекциям?
Проверка безопасности была проведена в отношении одного из наших приложений ASP.net, и в результатах теста была возвращена экспозиция SQL-инъекций, которая считается элементом высокого риска.
Выполненный тест передал инструкцию SQL в качестве значения __EVENTTARGET и __EVENTARGUMENT. Мне интересно, поскольку эти 2 значения являются автоматически сгенерированными скрытыми полями ASP.net, используемыми для функции автоматической обратной передачи платформы и содержат информацию, относящуюся к элементам управления, инициирующим обратную передачу, действительно ли существует вероятность внедрения SQL-кода, если вы никогда не выполняете вручную Вызов и / или извлечение значений из этих параметров в вашем коде позади?
2 ответа
..если вы никогда не вызываете и не извлекаете значения из этих параметров в своем коде позади...
Предполагая, что приведенное выше утверждение верно, я не вижу этих параметров восприимчивых к SQL-инъекции. Возможно, вы запустили автоматическое сканирование, и это ложная тревога?
Вы всегда должны предполагать, что грязные данные могут быть переданы из вашей формы. Допуская загрузку из постбэка, __EVENTARGUMENT может быть изменен со стороны клиента через javascript.
Всегда используйте передовой опыт, чтобы убедиться, что вы не разрешаете sql-инъекцию; и использовали параметризованные операторы SQL или другой безопасный метод.