时间:2021-07-01 10:21:17 帮助过:2人阅读
最后那一个空格 , 在一条sql 语句中如果遇到 select * from userinfo where username = ‘mjj‘ -- asdsadn‘ and pwd = ‘‘ 则-- 之后的条件被注释掉了(注意-- 后面还有一个空格) # 1, sql 注入之 : 用户存在 , 绕过密码 mjj‘ -- 任意字符 # 2, sql 注入之 : 用户不存在 , 绕过用户密码 xxx‘ or 1=1 -- 任意字符
# 原来是我们对sql进行字符串拼接 # sql="select * from userinfo where name=‘%s‘ and password=‘%s‘" %(username,pwd) # print(sql) # result=cursor.execute(sql) #改写为(execute帮我们做字符串拼接,我们无需且一定不能再为%s加引号了) sql="select * from userinfo where name=%s and password=%s" #!!!注意%s需要去掉引号,因为pymysql会自动为我们加上 result=cursor.execute(sql,[user,pwd]) #pymysql模块自动帮我们解决sql注入的问题,只要我们按照pymysql的规矩来。
pymysql模块的使用
标签:python 实现 程序 创建 print word res password mys