sql注入问题(mysql)[Python基础]

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()
hmoban主题是根据ripro二开的主题,极致后台体验,无插件,集成会员系统
自学咖网 » sql注入问题(mysql)