zoukankan      html  css  js  c++  java
  • Python中如何防止sql注入

      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,可以对字符串转义。

      更多内容,请扫码关注微信公众号“程序媛蒲苇”

        

  • 相关阅读:
    “百度杯”CTF比赛 九月场 code
    初识thinkphp(3)
    i春秋CTF web题(1)
    初识thinkphp(2)
    初识thinkphp(1)
    0MQ底层队列设计
    0MQ文档导读
    LF模式是个坑,ZeroIce中间件让你体会这个痛
    0xe7f001f0!?NDK调试过程,无故抛出SIGSEGV。
    KDevelop
  • 原文地址:https://www.cnblogs.com/puwei222/p/7747545.html
Copyright © 2011-2022 走看看