Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Mencegah Suntikan SQL Apabila Mengemas kini Pangkalan Data SQLite melalui JSON POST dalam Python?

Bagaimana untuk Mencegah Suntikan SQL Apabila Mengemas kini Pangkalan Data SQLite melalui JSON POST dalam Python?

DDD
DDDasal
2025-01-04 21:35:41869semak imbas

How to Prevent SQL Injection When Updating an SQLite Database via JSON POST in 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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn