параметризация в VBScript/ASP Classic и ADO

Я немного смущен здесь. Microsoft, насколько я могу судить, утверждает, что параметризация — лучший способ защитить вашу базу данных от атак SQL-инъекций. Но я нахожу здесь два противоречивых источника информации:

На этой странице предлагается использовать объект команды ADO. Но эта страница говорит, что объект команды не небезопасно для сценариев. Кажется, я припоминаю, что где-то читал, что объект команды не следует использовать в VBScript или JScript из-за уязвимостей в системе безопасности, но я не могу найти эту статью.

Я что-то упустил здесь, или эти две статьи кажутся противоречащими друг другу?


person Jason Baker    schedule 11.09.2008    source источник


Ответы (2)


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

См. безопасность для сценариев в этой статье. Каждый экземпляр, который говорит об этой фразе в Интернете, ссылается на нее, как если бы вы помечали элемент управления ActiveX, говоря: «Этот элемент управления не выполняет ввод-вывод или только обменивается данными с сервером, с которого он пришел», но объект Command этого не делает. Его можно использовать для многих вещей, которые могут быть небезопасными.

«Безопасность», о которой они говорят, и «безопасность» для предотвращения SQL-инъекций - это две разные вещи. Статья об использовании объекта ADO Command для параметризации ваших данных точно соответствует действительности. Вы должны сделать это.

И Microsoft далее подтверждает это здесь:

http://msdn.microsoft.com/en-us/library/ms676585(v=VS.85).aspx

person Michael Pryor    schedule 11.09.2008

Я думаю, что «безопасно для сценариев» означает «безопасно для запуска с веб-страницы, которую мы только что получили от какого-то нигерийского принца». Объект команды должен быть безопасным для запуска на сервере.

Однако на работе, когда-то мои коллеги не доверяли этому, поэтому у нас была внутренняя структура, которая в основном делала то же самое.

person rpetrich    schedule 11.09.2008