sql注入问题(mysql)
mysql中的sql注入问题
1、为什么会出现这种问题?
利用特殊符号和注释语法来绕过sql校验
演示:校验用户输入的用户名和密码来使用数据库校验
import pymysql # 与MySQL数据库建立连接 conn = pymysql.connect( host="127.0.0.1", port=3306, user="root", passwd="123", db="data", charset="utf8", autocommit=True ) # 获取游标对象 cursor_obj = conn.cursor(cursor=pymysql.cursors.DictCursor) # 用户输入的用户名和密码 username = input("请输入用户名>>> ").strip() password = input("请输入密码>>> ").strip() # 提交数据并检验用户名密码 sql = "select * from userinfo where username="%s" and password="%s"" % (username, password) # 根据用户名和密码来查询是否存在这条数据 print(sql) cursor_obj.execute(sql) res = cursor_obj.fetchall() if res: print(res) else: print("用户名或密码错误!") # 关闭游标 cursor_obj.close() # 关闭客户端连接 conn.close()