20220427-day47:避免SQL注入


user = input(“请输入用户名:”) #  "" or 1=1 --

pwd = input("请输入密码") # 123

-- 表示会注释掉后面的密码验证,where条件被注释

or 1=1 表示恒成立

切记sql语句不要使用python的字符串格式化,而是使用pymysql的execute方法

import pymysql

# 输入用户名和密码
user = input("请输入用户名:")
pwd = input("请输入密码:")

conn = pymysql.connect(host='127.0.0.1', port=3306, user='root', passwd='root123', charset="utf8", db='userdb')

cursor = conn.cursor()

cursor.execute("select * from users where name=%s and password=%s", [user, pwd])
# 或
# cursor.execute("select * from users where name=%(n1)s and password=%(n2)s", {"n1": user, 'n2': pwd})

result = cursor.fetchone()
print(result)

cursor.close()
conn.close()