Memparameterkan Nama Jadual dalam Penyata Disediakan
Suntikan SQL ialah kelemahan keselamatan kritikal yang berlaku apabila input pengguna mentah dimasukkan terus ke dalam pertanyaan pangkalan data . Untuk mengurangkan risiko ini, penyata yang disediakan menawarkan cara yang selamat untuk melaksanakan pertanyaan berparameter. Walau bagaimanapun, persoalan timbul: bolehkah kita membuat parameter nama jadual untuk melindungi daripada suntikan SQL?
Jawapan: Tidak
Pernyataan yang disediakan hanya membenarkan parameter terikat untuk nilai " " bahagian pernyataan SQL. Nama jadual tidak boleh diparameterkan kerana ia menentukan kesahihan pertanyaan. Menukar nama jadual boleh mengubah maksud pertanyaan dan berpotensi membawa kepada pelanggaran keselamatan.
Sesetengah antara muka pangkalan data, seperti PDO, mungkin membenarkan penggantian pemegang tempat untuk nama jadual. Walau bagaimanapun, nilai itu akan disertakan sebagai rentetan, menyebabkan SQL tidak sah apabila dilaksanakan. Contohnya, PILIH DARI ? dengan mytable sebagai parameter akan dihantar sebagai SELECT DARI 'mytable' ke pangkalan data, yang tidak sah.
Amalan Terbaik
Untuk melindungi daripada suntikan SQL dengan nama jadual yang dibekalkan pengguna, adalah disyorkan untuk:
Ingat, ia adalah penting untuk melaksanakan pengesahan input yang betul dan langkah keselamatan untuk mengelakkan manipulasi jadual tanpa kebenaran dan kemungkinan pelanggaran data.
Atas ialah kandungan terperinci Bolehkah Anda Parameterkan Nama Jadual dalam Pernyataan yang Disediakan untuk Mencegah Suntikan SQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!