Sobes.tech
Junior — Middle
93

Бұл кодта SQL инъекциясының осалдығын қалай анықтауға болады?

Сұралған компаниялар
ИнфоТехСервис

AI-дан жауап

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-запрос напрямую, без параметризации или экранирования.