Дом Безопасность Что такое инъекция SQL? - определение из техопедии

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

Оглавление:

Anonim

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

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

Техопедия объясняет 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-инъекций могут быть смягчены путем обеспечения надлежащего проектирования приложений, особенно в модулях, которые требуют ввода данных пользователем для выполнения запросов или команд базы данных. В приведенном выше примере приложение можно изменить так, чтобы оно принимало только одно числовое значение.

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