Python中如何防止sql注入
2024-10-10 22:01:07
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,可以对字符串转义。
更多内容,请扫码关注微信公众号“程序媛蒲苇”
最新文章
- 树莓派:raspberry pi 3b - NOOBS
- Linux_know
- 循序渐进Python3(十一) --1-- web之css
- [Web前端系列之_Firebug_00_序]
- discuz问题综合
- 怒刷DP之 HDU 1176
- 在.NET中实现彩色光标/动画光标和自定义光标[转]
- Apache 学习笔记(心得)
- 用css制作三角形
- Centos7 修改运行级别
- 【python】中文的输出,打印,文件编码问题解决方法
- HDU 3033 分组背包
- 关于RandomAccessFile一个坑!!!!
- .Net程序员学用Oracle系列(19):导出、导入(备份、还原)
- WebSocket异步通讯,实时返回数据实例
- [Object Tracking] Overview of algorithms for Object Tracking
- YOLO end-to-end
- Java中内部类揭秘(一):外部类与非静态内部类的”相互可见性“
- SpringMVC—概述
- CentOS禁用笔记本touchpad
热门文章
- springboot+swagger2
- SQL映射文件实现多种方式查询
- c++builder中 扩展c++的关键字 : _published _automated Get/Set指令 _fastcall
- Qt 打开文件的默认路径 QFileDialog::getOpenFileName()
- JavaScript案例开发之扑克游戏
- HSF服务的开发与使用
- An Introduction to Variational Methods (5.1)
- OC中成员属性 成员变量
- Python二维数据分析
- GRE 协议简介