Являются ли ASP.net __EVENTTARGET и __EVENTARGUMENT подверженными SQL-инъекциям?

Проверка безопасности была проведена в отношении одного из наших приложений ASP.net, и в результатах теста была возвращена экспозиция SQL-инъекций, которая считается элементом высокого риска.

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

2 ответа

Решение

..если вы никогда не вызываете и не извлекаете значения из этих параметров в своем коде позади...

Предполагая, что приведенное выше утверждение верно, я не вижу этих параметров восприимчивых к SQL-инъекции. Возможно, вы запустили автоматическое сканирование, и это ложная тревога?

Вы всегда должны предполагать, что грязные данные могут быть переданы из вашей формы. Допуская загрузку из постбэка, __EVENTARGUMENT может быть изменен со стороны клиента через javascript.

Всегда используйте передовой опыт, чтобы убедиться, что вы не разрешаете sql-инъекцию; и использовали параметризованные операторы SQL или другой безопасный метод.

http://msdn.microsoft.com/en-us/library/ms998271.aspx

Другие вопросы по тегам