Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Mencegah Suntikan SQL Apabila Mengemas kini Pangkalan Data SQLite melalui JSON POST dalam Python?
SQL Injection Protection in Python
Soalan:
Untuk melindungi daripada kerentanan suntikan SQL, bagaimana rentetan yang diterima daripada pengguna dan dihantar melalui JSON POST disanitasi untuk operasi kemas kini yang selamat dalam pangkalan data SQLite dalam Python?
Jawapan:
Menggunakan Pertanyaan Berparameter
Pendekatan yang disyorkan untuk mengurangkan risiko suntikan SQL ialah menggunakan pertanyaan berparameter . Modul sqlite3 Python menyokong ini melalui parameter pemegang tempat (?). Daripada menggabungkan input pengguna terus ke dalam pernyataan SQL, ia dihantar sebagai parameter, memisahkan input pengguna daripada sintaks SQL.
Kod Disemak:
def setLabel(self, userId, refId, label): cursor = self._db.cursor() query = """UPDATE items SET label = ? WHERE userId IS ? AND refId IS ?""" cursor.execute(query, (label, userId, refId)) self._db.commit()
Oleh menggunakan pertanyaan berparameter, sebarang aksara atau aksara meta yang berpotensi berniat jahat dalam input label dilepaskan secara automatik, memastikan ia ditafsirkan sebagai teks literal bukannya arahan SQL.
Atas ialah kandungan terperinci Bagaimana untuk Mencegah Suntikan SQL Apabila Mengemas kini Pangkalan Data SQLite melalui JSON POST dalam Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!