sql注入中最常见的就是字符串拼接,研发人员对字符串拼接应该引起重视,不应忽略。

  错误用法1:

    sql = "select id, name from test where id=%d and name='%s'" %(id, name)

    cursor.execute(sql)

  错误用法2:

    sql = "select id, name from test where id="+ str(id) +" and name='"+ name +"'"

    cursor.execute(sql)

  正确用法1:

    args = (id, name)

    sql = "select id, name from test where id=%s and name=%s"

    cursor.execute(sql, args)

    execute()函数本身有接受sql语句参数位的,可以通过python自身的函数处理sql注入问题。

  正确用法2:

    name = MySQLdb.escape_string(name)

    sql = "select id, name from test where id=%d and name='%s'" %(id, name)

    cursor.execute(sql)

    python模块MySQLdb自带针对mysql的字符转义函数escape_string,可以对字符串转义。

  更多内容,请扫码关注微信公众号“程序媛蒲苇”

    

最新文章

  1. 树莓派:raspberry pi 3b - NOOBS
  2. Linux_know
  3. 循序渐进Python3(十一) --1-- web之css
  4. [Web前端系列之_Firebug_00_序]
  5. discuz问题综合
  6. 怒刷DP之 HDU 1176
  7. 在.NET中实现彩色光标/动画光标和自定义光标[转]
  8. Apache 学习笔记(心得)
  9. 用css制作三角形
  10. Centos7 修改运行级别
  11. 【python】中文的输出,打印,文件编码问题解决方法
  12. HDU 3033 分组背包
  13. 关于RandomAccessFile一个坑!!!!
  14. .Net程序员学用Oracle系列(19):导出、导入(备份、还原)
  15. WebSocket异步通讯,实时返回数据实例
  16. [Object Tracking] Overview of algorithms for Object Tracking
  17. YOLO end-to-end
  18. Java中内部类揭秘(一):外部类与非静态内部类的”相互可见性“
  19. SpringMVC—概述
  20. CentOS禁用笔记本touchpad

热门文章

  1. springboot+swagger2
  2. SQL映射文件实现多种方式查询
  3. c++builder中 扩展c++的关键字 : _published _automated Get/Set指令 _fastcall
  4. Qt 打开文件的默认路径 QFileDialog::getOpenFileName()
  5. JavaScript案例开发之扑克游戏
  6. HSF服务的开发与使用
  7. An Introduction to Variational Methods (5.1)
  8. OC中成员属性 成员变量
  9. Python二维数据分析
  10. GRE 协议简介