Назад к словарю
Безопасность

SQL-инъекция

Техника внедрения кода, которая эксплуатирует уязвимости безопасности в слое базы данных приложения путём вставки вредоносных SQL-выражений в поля ввода.

Определение

SQL-инъекция (SQLi) происходит, когда пользовательский ввод неправильно фильтруется или не имеет строгой типизации и неожиданно выполняется как часть SQL-команды. Атакующие могут использовать SQLi для обхода аутентификации, доступа или модификации данных, выполнения административных операций и даже захвата контроля над сервером БД. Это одна из самых распространённых и опасных веб-уязвимостей, #3 в OWASP Top 10.

Почему это важно

SQL-инъекция была причиной крупных утечек данных, затронувших миллионы пользователей. Утечка Equifax 2017 года раскрыла 147 миллионов записей из-за связанной уязвимости. Предотвращение требует параметризованных запросов, валидации ввода и инструментов вроде diffray, обнаруживающих паттерны SQLi.

Пример

Форма логина конкатенирует ввод пользователя напрямую в SQL: "SELECT * FROM users WHERE username='" + input + "'". Атакующий вводит "' OR '1'='1" для обхода аутентификации.

Связанные термины

SQL injectionwhat is SQL injectionSQLiSQL injection attackSQL injection example

Автоматизируйте код-ревью с diffray

Мульти-агентная AI-система для код-ревью. Находит баги, уязвимости и проблемы архитектуры автоматически.