Rumah  >  Soal Jawab  >  teks badan

Bagaimana untuk mengendalikan mysql dalam python untuk mengelakkan program anda sendiri daripada disuntik secara berniat jahat kemudian (secara terang-terangan, saya bertanya tentang beberapa perkara utama anti-suntikan dalam python)

Adakah perlu merujuk kepada dokumen anti-suntikan sebelumnya dalam bahasa​​seperti php atau java? Sukar untuk mencari dokumentasi anti-suntikan yang berkaitan dengan python

滿天的星座滿天的星座2684 hari yang lalu750

membalas semua(2)saya akan balas

  • 黄舟

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

    1.Lulus

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

    Anti suntikan.

    2.Jika lulus

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

    Format ini memerlukan MySQLdb.escape_string(name) untuk mengelakkan suntikan.

    Adalah disyorkan untuk menggunakan yang pertama.

    balas
    0
  • 欧阳克

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

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

    Satu perkara yang saya tahu adalah untuk tidak menggunakan sql.format("x1", "x2"), tetapi untuk menghantar parameter kepada cursor.execute untuk pemprosesan

    balas
    0
  • Batalbalas