Услуги Портфолио Команда Академия Блог Связаться

SQL-инъекция: как работает и как защититься

702 1 мин

SQL-инъекция — манипуляция SQL-запросом через введённые данные. Классический пример: если ввести username = ' OR 1=1 --, можно войти под любым пользователем. Проблема: смешение данных и кода — введённый текст всегда интерпретируется как код.

Защита: Prepared statements (параметризованные запросы) — код и данные разделены: $stmt = $pdo->prepare("SELECT * FROM users WHERE id = ?");. ORM (Eloquent, Doctrine) как правило использует prepared statements. Валидация ввода — принимается только ожидаемый формат. Минимум привилегий — пользователь БД должен иметь только необходимые права. Web Application Firewall служит дополнительным слоем защиты.

Наши курсы по этой теме
Поделиться