> Какие угрозы безопасности существуют при работе с данными в SQL (PHP)
Уровень: senior · Роль: backend · Язык: PHP · Категория: Технические вопросы
Компании: vanta
Стек: PHP
> Пример ответа
При работе с SQL в PHP основная угроза - SQL-инъекция. Это происходит, когда пользовательский ввод напрямую конкатенируется в запрос, позволяя злоумышленнику выполнить произвольный SQL. Например:
$query = "SELECT * FROM users WHERE id = " . $_GET['id']; - передача 1; DROP TABLE users; удалит таблицу.
Другие угрозы:
- Небезопасное хранение паролей (например, в открытом виде или с устаревшими хэшами вроде MD5).
- Отсутствие экранирования при работе с LIKE, ORDER BY или динамическими именами таблиц.
- Утечка данных через ошибки (вывод сырых SQL-ошибок в production).
- Race conditions при конкурентных запросах без транзакций (например, двойное списание средств).
Для защиты используйте подготовленные выражения (PDO) - они разделяют код и данные, исключая инъекции. Пример:
PHP$stmt = $pdo->prepare('SELECT * FROM users WHERE id = :id');$stmt->execute(['id' => $_GET['id']]);
Также применяйте:
- Хэширование паролей через
password_hash(). - Валидацию и фильтрацию ввода (например,
filter_var($email, FILTER_VALIDATE_EMAIL)). - Ограничение прав БД (отдельный пользователь только для SELECT/INSERT).
- Логирование и мониторинг подозрительных запросов.
> Похожие задачи по PHP
Какие проблемы с тестированием возникают в Docker-среде
Какой базовый принцип безопасности при работе с пользовательскими данными
Как проверить использование индексов и построение плана выполнения запроса в базе данных?
Какие минусы использования магических методов в PHP
> Похожие задачи по backend
Какие проблемы с тестированием возникают в Docker-среде
Какой базовый принцип безопасности при работе с пользовательскими данными
Как проверить использование индексов и построение плана выполнения запроса в базе данных?
Какие минусы использования магических методов в PHP
> ГОТОВЫ К СЛЕДУЮЩЕМУ СОБЕСЕДОВАНИЮ?
Запустите тренировочную сессию с ИИ и получите детальную обратную связь, чтобы увереннее проходить реальные интервью