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)

  

最新文章

  1. CC2540自己的配置文件
  2. RumTime实践之--UITableView和UICollectionView缺省页的实现
  3. JAVA中int、String的类型转换
  4. CSS布局设计
  5. 建造者模式(Builder)
  6. STL之map应用 +hash表(51nod 1095)
  7. JVM内存状况查看方法和分析工具
  8. 【Java基础】Java网络编程基础知识
  9. javascript正则表达式简述
  10. Java基础知识强化之IO流笔记08:异常的注意事项
  11. KVM硬件辅助虚拟化之 EPT(Extended Page Table)
  12. Hibernate的几种查询方式-HQL,QBC,QBE,离线查询,复合查询,分页查询
  13. 剑指offer-面试题2.实例Singleton模式
  14. pygame初步(一)绘制一个运动的矩形
  15. TF-IDF算法-自动提取关键词汇
  16. lsblk请参阅块设备
  17. Mysql Innodb体系结构
  18. 简单使用Unity导航系统(小白之路)
  19. caffe调试
  20. naturalWidth与naturalHeight

热门文章

  1. AtCoder Grand Contest 003题解
  2. P1041 传染病控制——暴力遍历所有相同深度的节点
  3. wpf防止界面卡死
  4. Java 线程之间的通讯,等待唤醒机制
  5. 【知识点】同样是消息队列,Kafka凭什么速度那么快?
  6. .NET Core教程--给API加一个服务端缓存啦
  7. Kafka(三) —— 集群监控
  8. [面试]快来测测你的C++水平
  9. Django微信小程序后台开发教程
  10. 001 centos7下安装kibana