安全:参数化防注入

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()