Sobes.tech
Back to questions
Principal
32

Что такое SQL-инъекция и как с ней бороться?

Companies where asked
Avosend

Answer from AI

sobes.tech AI

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

Для борьбы с SQL-инъекциями применяют следующие методы:

  • Использование параметризованных запросов (prepared statements) — параметры передаются отдельно от SQL-кода, что предотвращает выполнение вредоносного кода.
  • Валидация и фильтрация пользовательского ввода — проверка данных на соответствие ожидаемому формату.
  • Использование ORM — многие ORM автоматически защищают от SQL-инъекций.
  • Минимизация прав доступа к базе данных — ограничение прав пользователя базы данных, используемого приложением.

Пример на языке SQL с параметризованным запросом (например, на Python с библиотекой sqlite3):

cursor.execute("SELECT * FROM users WHERE username = ?", (username,))

Здесь username передается как параметр, что исключает возможность инъекции.