suchen

Heim  >  Fragen und Antworten  >  Hauptteil

So betreiben Sie MySQL in Python, um zu verhindern, dass Ihr eigenes Programm später böswillig injiziert wird (um es ganz klar auszudrücken: Ich frage nach einigen wichtigen Punkten der Anti-Injection in Python)

Ist es notwendig, auf frühere Anti-Injection-Dokumente in Sprachen wie PHP oder Java zu verweisen? Es ist wirklich schwer, Anti-Injection-Dokumentation zu Python zu finden

滿天的星座滿天的星座2716 Tage vor786

Antworte allen(2)Ich werde antworten

  • 黄舟

    黄舟2017-06-14 10:52:54

    1.通过

    cursor.execute("select * from table where name=%s", "name")
    

    可以防注入。

    2.如果通过

    sql = "select * from table where name=%s" % MySQLdb.escape_string(name)
    

    这种格式,需要MySQLdb.escape_string(name),可以防注入.

    推荐使用第一种。

    Antwort
    0
  • 欧阳克

    欧阳克2017-06-14 10:52:54

    sql = "INSERT INTO `users` (`email`, `password`) VALUES (%s, %s)"
    cursor.execute(sql, ('webmaster@python.org', 'very-secret'))
    

    我知道的一点是不要使用 sql.format("x1", "x2"), 要把参数传给cursor.execute去处理

    Antwort
    0
  • StornierenAntwort