博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Python 防止mysql 注入的两种方式
阅读量:5306 次
发布时间:2019-06-14

本文共 777 字,大约阅读时间需要 2 分钟。

 

Python防止sql注入一般有两种方法

 

1.
escape_string
 
MySQLdb.escape_string(param)

注意:如果报错出现

'ascii' codec can't encode characters in position 0-2: ordinal not in range(128)  # 因为用户输入的字符串的字符集是ascll,但是ascll不支持中文, 所以我们可以把python的默认字符集改成utf-8就可以了

     

2. excute参数化传递
 
cur.excute(sql, (str1,str2))
import MySQLdbconn = MySQLdb.connect(host='localhost', user='root', passwd='', db='test')param = 'aaa'## 第一种escape_param = MySQLdb.escape_string(param) cur = conn.cursor()cur.execute("select * form table where col="+escape_param+"")cur.commit()cur.close() ##第二种
cur = conn.cursor()

  # 这是有效的,正确方式

  cur.execute('select * from table where col=%s',(param,))
  # 这是无效的,只是普通的占位符替换
  cur.execute('select * from table where col=%s'% (param,))

cur.commit()cur.close()

 

转载于:https://www.cnblogs.com/yanguhung/p/10531728.html

你可能感兴趣的文章
mysql中key 、primary key 、unique key 与index区别
查看>>
bzoj2257
查看>>
Linux查看文件编码格式及文件编码转换<转>
查看>>
Leetcode: Find Leaves of Binary Tree
查看>>
Vue 模板解释
查看>>
http://www.bootcss.com/
查看>>
20145308 《网络对抗》 注入shellcode+Return-to-libc攻击 学习总结
查看>>
将多张图片和文字合成一张图片
查看>>
自己动手写ORM(01):解析表达式树生成Sql碎片
查看>>
如何使用USBWebserver在本机快速建立网站测试环境
查看>>
百度Ueditor编辑器的Html模式自动替换样式的解决方法
查看>>
变量提升
查看>>
线性表可用顺序表或链表存储的优缺点
查看>>
在现有的mysql主从基础上,搭建mycat实现数据的读写分离
查看>>
[Flex] flex手机项目如何限制横竖屏?只允许横屏?
查看>>
tensorflow的graph和session
查看>>
JavaScript动画打开半透明提示层
查看>>
Mybatis生成resulteMap时的注意事项
查看>>
jquery-jqzoom 插件 用例
查看>>
1007. Maximum Subsequence Sum (25)
查看>>