Python 防止mysql 注入的两种方式

Posted UHung

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python 防止mysql 注入的两种方式相关的知识,希望对你有一定的参考价值。

 

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

 

1.escape_string
 
MySQLdb.escape_string(param)

注意:如果报错出现

ascii codec cant encode characters in position 0-2: ordinal not in range(128)

# 因为用户输入的字符串的字符集是ascll,但是ascll不支持中文, 所以我们可以把python的默认字符集改成utf-8就可以了

     

2. excute参数化传递
 
cur.excute(sql, (str1,str2))
import MySQLdb
conn = 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()

 

以上是关于Python 防止mysql 注入的两种方式的主要内容,如果未能解决你的问题,请参考以下文章

对Java代码加密的两种方式,防止反编译

IOC 控制反转IOC 简介 ( 依赖注入的两种实现方式 | 编译期注入 | 运行期注入 )

angularJs模版注入的两种方式

sql注入与防止SQL注入之参数化处理

spring的两种属性注入方式setter注入和构造器注入或者自动注入

MySQL视图事务与存储过程