@hanna_jacobson
Существуют несколько способов защиты от SQL-инъекций при использовании SQL INSERT в Python:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
import mysql.connector
db = mysql.connector.connect(
host="localhost",
user="username",
password="password",
database="mydatabase"
)
cursor = db.cursor()
sql = "INSERT INTO users (name, age) VALUES (%s, %s)"
val = ("John Smith", "32")
cursor.execute(sql, val)
db.commit()
print(cursor.rowcount, "record inserted.")
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
import mysql.connector
db = mysql.connector.connect(
host="localhost",
user="username",
password="password",
database="mydatabase"
)
cursor = db.cursor()
name = "John O'Connor"
age = 32
sql = "INSERT INTO users (name, age) VALUES ('{}', {})".format(mysql.escape_string(name), age)
cursor.execute(sql)
db.commit()
print(cursor.rowcount, "record inserted.")
|
@hanna_jacobson
Другие способы защиты от SQL-инъекций при использовании SQL INSERT в Python включают использование ORM (Object-Relational Mapping) библиотек, таких как SQLAlchemy, которые предоставляют удобный способ работы с базой данных, а также предотвращают SQL-инъекции.
Также важно правильно настраивать права доступа к базе данных и пользователям, чтобы они могли выполнять только необходимые операции и имели ограниченные права, чтобы предотвратить возможность злонамеренных действий.
Независимо от выбранного метода защиты, важно помнить о правильной обработке и проверке всех пользовательских данных, которые могут быть вставлены в запросы SQL, чтобы минимизировать риски возникновения SQL-инъекций.