Keselamatan pangkalan data untuk pemula dalam PHP

1.Halang suntikan sql

Apa yang dipanggil suntikan SQL adalah untuk memasukkan arahan SQL ke dalam borang Web untuk menyerahkan atau memasukkan nama domain atau rentetan pertanyaan untuk permintaan halaman , dan akhirnya menipu pelayan untuk melaksanakan perintah SQL yang berniat jahat.

Kita tidak boleh mempercayai input pengguna Kita mesti menganggap bahawa data yang dimasukkan oleh pengguna tidak selamat Kita semua perlu menapis data yang dimasukkan oleh pengguna

Sebagai contoh, untuk mendaftar, pengguna perlu mengisi Nama pengguna, kata laluan, dsb.

Apabila kami menerima data ini, kami akan menilainya terlebih dahulu. Kami boleh menggunakan js untuk menilai sah di hadapan, maka kami perlu pergi ke sana semula Setelah semuanya diisi dan sah, maklumat yang kami terima, seperti nama pengguna, telah didaftarkan Kami perlu menanyakan pangkalan data dan menilainya berdasarkan maklumat nama pengguna yang dihantar dalam borang Jika ia wujud, maka pendaftaran tidak dibenarkan. Kami juga boleh Menggunakan ungkapan biasa untuk mengawal formatnya. Tunggu

Kami juga boleh menapis data yang diserahkan oleh borang

Untuk mengelakkan suntikan SQL, kita perlu memberi perhatian kepada perkara berikut:

· 1 .Jangan sekali-kali mempercayai input pengguna. Untuk mengesahkan input pengguna, anda boleh menggunakan ungkapan biasa atau mengehadkan panjang menukar petikan tunggal dan berganda "-", dsb.

· 2. Jangan sekali-kali menggunakan himpunan dinamik sql Anda boleh menggunakan sql berparameter atau terus menggunakan prosedur tersimpan untuk pertanyaan dan akses data.

· 3. Jangan sekali-kali menggunakan sambungan pangkalan data dengan keistimewaan pentadbir Gunakan sambungan pangkalan data berasingan dengan keistimewaan terhad untuk setiap aplikasi.

· 4. Jangan simpan maklumat sulit secara langsung, enkripsi atau cincang kata laluan dan maklumat sensitif.

· 5. Maklumat pengecualian aplikasi harus memberikan sedikit petunjuk yang mungkin. Sebaiknya gunakan maklumat ralat tersuai untuk membungkus mesej ralat asal

· 6. Kaedah pengesanan suntikan sql Secara amnya. , perisian tambahan atau platform tapak web digunakan untuk pengesanan Perisian ini secara amnya menggunakan alat pengesan suntikan SQL jsky, dan platform tapak web mempunyai alat pengesan platform keselamatan laman web Yisi. MDCOFT SCAN dsb. Menggunakan MDCOFT-IPS boleh bertahan dengan berkesan daripada suntikan SQL, serangan XSS, dsb.

Cegah suntikan sql

Dalam bahasa skrip, seperti Perl dan PHP, anda boleh mengubah suai data yang dimasukkan oleh pengguna Escape untuk mengelakkan suntikan SQL.

Pelanjutan MySQL PHP menyediakan fungsi mysql_real_escape_string() untuk melepaskan aksara input khas

<?php
    if (get_magic_quotes_gpc()) {
          $name = stripslashes($name);
    }
    $name = mysql_real_escape_string($name);
    mysql_query("SELECT * FROM users WHERE name='{$name}'");
?>

Suntikan dalam pernyataan Suka

pertanyaan seperti , jika nilai ​​dimasukkan oleh pengguna termasuk "_" dan "%", situasi ini akan berlaku: pengguna pada asalnya hanya ingin bertanya "abcd_", tetapi hasil pertanyaan termasuk "abcd_", "abcde", "abcdf", dll.; Masalah juga akan berlaku apabila pengguna ingin bertanya "30%" (nota: tiga puluh peratus).

Dalam skrip PHP kita boleh menggunakan fungsi addcslashes() untuk mengendalikan situasi di atas, seperti yang ditunjukkan dalam contoh berikut:

<?php
    $sub = addcslashes(mysql_real_escape_string("%something_"), "%_");
    // $sub == \%something\_
    mysql_query("SELECT * FROM messages WHERE subject LIKE '{$sub}%'");
?>


Meneruskan pembelajaran
||
<?php echo "hello world"; ?>
  • Cadangan kursus
  • Muat turun perisian kursus