1. 程式人生 > >Python中如何防止sql註入

Python中如何防止sql註入

mage cut 人員 錯誤 where mysqld 針對 應該 就是

  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,可以對字符串轉義。

  更多內容,請掃碼關註微信公眾號“程序媛蒲葦”

    技術分享

Python中如何防止sql註入