параметризация в VBScript / ASP Classic и ADO - PullRequest
4 голосов
/ 12 сентября 2008

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

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

Я что-то здесь упускаю или эти две статьи противоречат друг другу?

Ответы [ 2 ]

4 голосов
/ 12 сентября 2008

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

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

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

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

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

1 голос
/ 12 сентября 2008

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

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

...