Back to questions
Middle+
5
Найдите ошибку в коде и уязвимость (код с SQL-конкатенацией через QueryBuilder)
Companies where asked
CSSSR
Answer from AI
sobes.tech AI
Ошибка в коде с SQL-конкатенацией через QueryBuilder обычно связана с тем, что разработчик вручную конкатенирует строки SQL-запроса, что приводит к уязвимости — SQL-инъекции. Даже если используется QueryBuilder, если параметры вставляются напрямую в строку запроса, а не через подготовленные выражения или методы привязки параметров, это опасно.
Пример уязвимого кода:
$query = $queryBuilder->select('*')
->from('users')
->where("username = '" . $_GET['username'] . "'");
Здесь параметр $_GET['username'] вставляется напрямую, что позволяет злоумышленнику внедрить SQL-код.
Правильный подход — использовать привязку параметров:
$query = $queryBuilder->select('*')
->from('users')
->where('username = :username')
->setParameter('username', $_GET['username']);
Таким образом, ошибка — ручная конкатенация параметров в запросе, уязвимость — возможность SQL-инъекции.