1. Pengantar fungsi is_numberic
Beberapa program CMS domestik telah menggunakan fungsi IS_Numberic.
bool is_numeric (campuran $ var)
Mengembalikan true jika var adalah numerik dan string numerik, jika tidak mengembalikan false.
2. Apakah fungsinya aman?
Selanjutnya, mari kita lihat contoh untuk menggambarkan apakah fungsi ini aman.
Salinan kode adalah sebagai berikut: $ s = is_numeric ($ _ get ['s'])? $ _ Get ['s']: 0;
$ sql = "masukkan ke dalam nilai tes (type) ($ s);";
mysql_query ($ sql);
Program fragmen di atas menentukan apakah parameter S adalah angka, dan mengembalikan angka jika tidak, mengembalikan 0, dan kemudian membawanya ke dalam kueri database. (Dengan cara ini, pernyataan SQL tidak dapat dibangun)
Kami mengonversi '1 atau 1' menjadi hexadecimal 0x31206f722031 sebagai nilai parameter S
Setelah program dijalankan, kami meminta database untuk dilihat, seperti yang ditunjukkan pada gambar di bawah ini:
Jika Anda menuntut kembali bidang tabel ini dan tidak menyaring dan membawa pernyataan SQL lainnya, itu akan menyebabkan 2 suntikan.
3. Ringkasan
Cobalah untuk tidak menggunakan fungsi ini. 1 atau 1 tidak akan muncul.