Вопрос

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

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

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

Это было полезно?

Решение

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

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

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

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

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

Другие советы

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top