Mencegah Suntikan SQL dengan Nama Jadual Dinamik
Kebimbangan terhadap suntikan SQL dengan nama jadual dinamik timbul daripada kemungkinan memanipulasi nama jadual untuk melaksanakan perintah jahat. Walau bagaimanapun, menggunakan mysql_real_escape_string atau PDO tidak mencukupi untuk tujuan ini.
mysql_real_escape_string
mysql_real_escape_string direka untuk melindungi data dengan melepaskan petikan yang menyertakan nilai rentetan. Walau bagaimanapun, ia gagal menangani aksara backtick , yang penting dalam nama jadual dinamik.
PDO
PDO, sambil menyediakan sanitasi data, tidak melanjutkan perlindungan ini kepada nama jadual dinamik.
Penyelesaian
Yang terbaik strategi untuk menghalang suntikan SQL dalam senario sedemikian adalah untuk mengelakkan nama jadual dinamik sama sekali. Sebagai alternatif, jika perlu, pengesahan ketat perlu dilakukan untuk memastikan nama jadual dinamik sepadan dengan senarai nilai yang sah, diperoleh melalui pertanyaan SHOW TABLES.
Nota Tambahan
Adalah penting untuk berhati-hati apabila berurusan dengan nama jadual dinamik dan memahami sepenuhnya batasan teknik sanitasi data untuk melindungi secara berkesan daripada Kerentanan suntikan SQL.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menggunakan Nama Jadual Dinamik dengan Selamat dalam SQL untuk Mencegah Serangan Suntikan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!