SQL注入的原因
SQL注入的原因 是由于特殊符号的组合会产生特殊的效果
实际生活中 尤其是在注册用户名的时候 会非常明显的提示你很多特殊符号不能用
因此我们在设计到敏感数据部分 不要自己拼接 交给现成的方法拼接即可
pycharm操作MySQL
import pymysql
conn=pymysql.connect(
host='127.0.0.1',
port=3306,
user='数据库名称',
password='数据库密码',
charset='utf8',
database='数据库',
)
cursor=conn.cursor(cursor=pymysql.cursors.DictCursor)
username=input('username>>>').strip()
password=inpyt('password>>>').strip()
sql='select * from t1 where name=%s and pwd=%s'%(username,password)
cursor.execute(sql)
上述代码为登录验证操作,但会出现 只需要用户名也可以登录、不需要用户名和密码也能登录、SQL注入问题
eg:
username>>> jack' -- 其他代码
username>>> xxx' or 1=1 #不需要用户名和密码就能登录
在使用代码进行数据操作的时候 不同操作的级别是不一样的
针对查无所谓
针对增 改 删都需要二次确认:
conn.commit()
安全问题
1.密码加密
2.SQL注入
3.xss共计
4.CSRF跨站请求