«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Как безопасно вставить переменные в запросы SQL с помощью Python?

Как безопасно вставить переменные в запросы SQL с помощью Python?

Опубликовано в 2025-02-06
Просматривать:356

How to Safely Insert Variables into SQL Queries Using Python?

безопасно вставить переменные в SQL -запросы в Python

]

При обработке запросов базы данных в Python вам обычно нужно включать переменные в оператор запроса. Тем не менее, обязательно работайте таким образом, чтобы предотвратить синтаксические ошибки или уязвимости безопасности.

]

рассмотрим следующий код Python:

]
cursor.execute("INSERT INTO table VALUES var1, var2, var3")
]

В этом коде var1 является целым числом, var2 и var3 является строками. Однако, когда Python пытается включить имена var1 , var2 , и var3 как часть самого текста запроса, возникают проблемы, что приводит к признанию запроса.

]

Чтобы решить эту проблему, вы можете использовать механизм замены заполнителя, предоставленный API базы данных. Вот как переписать код, используя заполнители:

]
cursor.execute("INSERT INTO table VALUES (%s, %s, %s)", (var1, var2, var3))

в этом улучшенном коде:

]
    ]
  • %s представляет заполнителя для заполнения значения.
  • ]
  • (var1, var2, var3) это кортеж, содержащий значение, которое будет вставлено.
  • ]
]

, передавая значения в качестве кортежей, API базы данных обрабатывает необходимую переменную, выходящие и ссылки, обеспечивая совместимость с базой данных и предотвращая потенциальные риски безопасности.

]

Обратите внимание, что для одного параметра требуется кортеж с запятыми запятыми:

cursor.execute("INSERT INTO table VALUES (%s)", (var1,))
]

Кроме того, избегайте использования оператора форматирования строки (%) для вставки переменных, поскольку это может привести к уязвимости безопасности, а API базы данных не поддерживает его.

]
Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3