Назад к вопросам
Junior — Middle
77
Каким образом можно определить уязвимость SQL-инъекции в данном коде?
Компании, где спрашивали
ИнфоТехСервис
Ответ от нейросети
sobes.tech AI
SQL-инъекция возникает, когда пользовательский ввод напрямую вставляется в SQL-запрос без должной обработки. Чтобы определить уязвимость в коде на Python, нужно проверить, формируется ли SQL-запрос с использованием конкатенации строк или форматирования с участием данных от пользователя.
Например, уязвимый код:
user_id = input("Введите ID пользователя: ")
query = f"SELECT * FROM users WHERE id = {user_id}"
cursor.execute(query)
Здесь, если пользователь введет что-то вроде 1 OR 1=1, запрос изменится и вернет все записи.
Безопасный подход — использовать параметризированные запросы:
user_id = input("Введите ID пользователя: ")
query = "SELECT * FROM users WHERE id = %s"
cursor.execute(query, (user_id,))
Таким образом, чтобы определить уязвимость, ищите места, где пользовательский ввод вставляется в SQL-запрос напрямую, без параметризации или экранирования.