zoukankan      html  css  js  c++  java
  • Python 防止mysql 注入的两种方式

    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 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()
  • 相关阅读:
    springboot集成kafka
    elasticsearch http 搜索 测试
    linux下安装Elasticsearch
    laravel_admin 使用
    laravel 数据操作
    Win10+apache+PHP+Mysql
    laravel 坑(一)
    下载CentOS镜像
    window10 家庭版 添加Hyper-V虚拟机
    Win10 Composer 下载安装
  • 原文地址:https://www.cnblogs.com/yanguhung/p/10531728.html
Copyright © 2011-2022 走看看