• python防止sql注入的方法


    python防止sql注入的方法:
    1. 使用cursor.execute(sql, args)的参数位:

    sql_str = "select * from py_msgcontrol.py_msgcontrol_file_base_info where file_name = %s"
    args = ["12';select now();"]
    conn = pymysql.connect(**conn_dic)
    cursor = conn.cursor()
    cursor.execute(sql_str, args)

      cursor.execute函数将传入的args中的特殊符号进行了转义,从而防止了sql注入的问题。

      注意点是要传入sql语句的字符串占位用引号包起来会出错,像这样:

    sql_str = "select * from py_msgcontrol.py_msgcontrol_file_base_info where file_name = '%s'"

      报错:

    pymysql.err.ProgrammingError: (1064, "You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '12\';select now();''' at line 1")

    2. 使用pymysql.escape_string对参数进行转义

    args = pymysql.escape_string("12';select now();")
    sql_str = "select * from py_msgcontrol.py_msgcontrol_file_base_info where file_name = '%s'" % args
    conn = pymysql.connect(**conn_dic)
    cursor = conn.cursor()
    cursor.execute(sql_str)
    

      

  • 相关阅读:
    猜数字小游戏的设计
    实验三 敏捷开发与XP实践 实验报告
    实验二Java面向对象程序设计
    课程总结报告
    Android实践项目汇报总结(下)
    Android实践项目汇报总结(上)修改
    Android项目开发四
    Android项目开发三
    Android项目开发二
    Android项目开发一
  • 原文地址:https://www.cnblogs.com/hufulinblog/p/10537482.html
Copyright © 2020-2023  润新知