SQL-инъекция

Автор: Peter Berry
Дата создания: 13 Август 2021
Дата обновления: 22 Июнь 2024
Anonim
Основы баз данных и SQL. Введение в SQL инъекции
Видео: Основы баз данных и SQL. Введение в SQL инъекции

Содержание

Определение - что означает SQL-инъекция?

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


Введение в Microsoft Azure и Microsoft Cloud | Из этого руководства вы узнаете, что такое облачные вычисления и как Microsoft Azure может помочь вам перенести и запустить свой бизнес из облака.

Техопедия объясняет SQL-инъекцию

Давайте рассмотрим пример атаки SQL-инъекцией:

Приложение, управляющее банковскими операциями, содержит меню, которые можно использовать для поиска сведений о клиенте с использованием таких точек данных, как номер социального страхования клиента. В фоновом режиме приложение вызывает запрос SQL, который выполняется в базе данных, передавая введенные значения поиска следующим образом:

ВЫБЕРИТЕ client_name, phone, address, date_of_birth WHERE social_sec_no = 23425

В этом примере сценария пользователь вводит значение 23425 в окне меню приложения, запрашивая у пользователя номер социального страхования. Затем, используя значение, предоставленное пользователем, запрос SQL выполняется в базе данных.

Пользователь со знанием SQL может понять приложение и вместо ввода единственного значения при запросе номера социального страхования введите строку «23425 или 1 = 1», которая передается в базу данных следующим образом:

ВЫБЕРИТЕ client_name, phone, address, date_of_birth WHERE social_sec_no = 23425 или 1 = 1

Предложение WHERE важно, потому что оно вводит уязвимость. В базе данных условие 1 = 1 всегда выполняется, и поскольку запрос был задан для возврата сведений о номере социального страхования клиента (23425) или WHERE 1 = 1, запрос возвратит все строки в таблице, которая не была первоначальное намерение.

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

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