在网上查到的教程中说应该使用:
cursor.execute("SELECT * FROM user_info WHERE email = %s", youremail)
而不是:
cursor.execute("SELECT * FROM user_info WHERE email = %s" % youremail)
但是第一种形式似乎不能够处理自定义表名,如:
cursor.execute("SELECT * FROM %s WHERE email = %s", (user_info, youremail)
会自动把表名加上双引号变成
SELECT * FROM "user_info" WHERE email = "youremail"
我想,能不能在get_argument处下手,通过过滤某些字符以达到防注入的效果?或者有没有其他更好的方法?
cursor.execute("SELECT * FROM user_info WHERE email = %s", youremail)
而不是:
cursor.execute("SELECT * FROM user_info WHERE email = %s" % youremail)
但是第一种形式似乎不能够处理自定义表名,如:
cursor.execute("SELECT * FROM %s WHERE email = %s", (user_info, youremail)
会自动把表名加上双引号变成
SELECT * FROM "user_info" WHERE email = "youremail"
我想,能不能在get_argument处下手,通过过滤某些字符以达到防注入的效果?或者有没有其他更好的方法?