Rumah >pangkalan data >tutorial mysql >Bagaimanakah Saya Boleh Melaksanakan Pertanyaan MySQL dengan Selamat dalam Python untuk Mencegah Suntikan SQL?

Bagaimanakah Saya Boleh Melaksanakan Pertanyaan MySQL dengan Selamat dalam Python untuk Mencegah Suntikan SQL?

DDD
DDDasal
2024-12-13 14:21:10294semak imbas

How Can I Securely Execute MySQL Queries in Python to Prevent SQL Injection?

Secure MySQL Connectivity and Query Execution dalam Python

Dalam bidang aplikasi web, memastikan pengendalian data yang selamat adalah yang terpenting. Apabila bekerja dengan MySQL, satu kebimbangan biasa ialah menghalang serangan suntikan SQL. Untuk menangani perkara ini, adalah penting untuk menggunakan amalan terbaik yang melindungi pangkalan data anda daripada manipulasi berniat jahat.

Salah satu pendekatan sedemikian ialah menggunakan pernyataan yang disediakan dengan penanda parameter ('%s'). Dengan menggunakan kaedah ini, anda boleh memasukkan pembolehubah ke dalam pertanyaan sambil mengekalkan keselamatan. Begini caranya:

  1. Sediakan Pertanyaan: Buat pernyataan yang disediakan menggunakan kaedah "laksana" dengan penanda parameter sebagai ganti pembolehubah. Contohnya:
cursor = db.cursor()
max_price = 5
statement = "SELECT spam, eggs, sausage FROM breakfast WHERE price < %s"
  1. Ikat Pembolehubah: Daripada直接插入变量,使用列表或元组将变量将变量方法的第二个参数。 Ini mengikat pembolehubah pada pernyataan yang disediakan, memastikan ia terlepas dan dibersihkan dengan betul.
cursor.execute(statement, (max_price,))

Elakkan Penggantian Terus:

Adalah penting untuk mengelak daripada menggantikan terus pembolehubah ke dalam pertanyaan menggunakan rentetan pemformatan, kerana ini boleh membawa kepada kelemahan suntikan SQL. Sebaliknya, gunakan penanda parameter dengan ketat dan ikat pembolehubah pada pernyataan yang disediakan.

Sebagai contoh, jangan gunakan penggantian rentetan seperti:

cursor.execute("SELECT spam, eggs, sausage FROM breakfast WHERE price < %s" % (max_price,))

Pertimbangan Tambahan:

  • Jangan gunakan petikan tunggal di sekeliling pemegang parameter ('%s') jika parameter ialah rentetan. Pemandu akan menyediakan pelarian yang sesuai.
  • Gunakan pertanyaan berparameter secara konsisten di seluruh pangkalan kod anda untuk memastikan keselamatan merentas aplikasi.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Melaksanakan Pertanyaan MySQL dengan Selamat dalam Python untuk Mencegah Suntikan SQL?. 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