python防止sql注入的方法
2024-08-23 04:30:25
python防止sql注入的方法:
1. 使用cursor.execute(sql, args)的参数位:
sql_str = "select * from py_msgcontrol.py_msgcontrol_file_base_info where file_name = %s"
args = ["12';select now();"]
conn = pymysql.connect(**conn_dic)
cursor = conn.cursor()
cursor.execute(sql_str, args)
cursor.execute函数将传入的args中的特殊符号进行了转义,从而防止了sql注入的问题。
注意点是要传入sql语句的字符串占位用引号包起来会出错,像这样:
sql_str = "select * from py_msgcontrol.py_msgcontrol_file_base_info where file_name = '%s'"
报错:
pymysql.err.ProgrammingError: (1064, "You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '12\\';select now();''' at line 1")
2. 使用pymysql.escape_string对参数进行转义
args = pymysql.escape_string("12';select now();")
sql_str = "select * from py_msgcontrol.py_msgcontrol_file_base_info where file_name = '%s'" % args
conn = pymysql.connect(**conn_dic)
cursor = conn.cursor()
cursor.execute(sql_str)
最新文章
- CC2540自己的配置文件
- RumTime实践之--UITableView和UICollectionView缺省页的实现
- JAVA中int、String的类型转换
- CSS布局设计
- 建造者模式(Builder)
- STL之map应用 +hash表(51nod 1095)
- JVM内存状况查看方法和分析工具
- 【Java基础】Java网络编程基础知识
- javascript正则表达式简述
- Java基础知识强化之IO流笔记08:异常的注意事项
- KVM硬件辅助虚拟化之 EPT(Extended Page Table)
- Hibernate的几种查询方式-HQL,QBC,QBE,离线查询,复合查询,分页查询
- 剑指offer-面试题2.实例Singleton模式
- pygame初步(一)绘制一个运动的矩形
- TF-IDF算法-自动提取关键词汇
- lsblk请参阅块设备
- Mysql Innodb体系结构
- 简单使用Unity导航系统(小白之路)
- caffe调试
- naturalWidth与naturalHeight