安全:参数化防注入
57.21 安全:参数化防注入
永远 execute(sql, (参数,)),禁止 f-string 拼接用户输入。
密码用环境变量;生产环境不用 root 账号。
安全查询姓名
import pymysql
name = input('输入姓名:') # 用户输入
conn = pymysql.connect(host='127.0.0.1', user='root', password='root', database='py_demo', charset='utf8mb4')
try:
with conn.cursor() as cur:
cur.execute('SELECT * FROM students WHERE name=%s', (name,))
print(cur.fetchall())
finally:
conn.close()