python防止sql注入

错误用法:

1
2
sqlStatement = "SELECT * FROM users WHERE userName = '" + userName + "' AND passWord = '" + passWord + "';"
cur.execute(sqlStatement)

这种拼接字符串的方法很容易导致sql注入漏洞。

正确用法:
execute() 函数本身有接受sql语句参数位的,可以通过python自身的函数处理参数。

1
2
sqlStatement = "SELECT * FROM users WHERE userName = %s AND passWord = %s;"
cursor.execute(sqlStatement, (userName, passWord))

使用参数带入的方法,函数内部会对传入的参数值进行相应的处理,防止sql注入。