所谓的sql注入就是当我们输入用户名和密码时用户输入了用户名+‘#,没有输入密码就直接连接数据库的操作
当我们开发人员进行编程时,如果将要发送的mysql语句用拼接的方式发送时:
eg:
name = input("请输入用户名")
pwd = input("请输入密码")
sql = "select * from user_info where name = '%s' and pwd ='%s'" %(name,pwd) #此处进行了拼接操作
count= cursors.execute(sql)
当用户输入了用户名+’#,此时‘会与第一个’%s‘的第一个引号匹配,剩余密码部分跟在#后变成注释,相当于被注释。从而实现不用密码登陆数据库。
解决办法:
以参数的方式在发送时进行数据传递,参数放在列表中
count= cursors.execute(sql,[name,pwd])
该方法内部实现对#的转译,不会让它变成注释的含义!!!