Satu-satunya cara adalah menghindari data yang dikirimkan pengguna dengan benar. Yang lain telah menunjukkan beberapa cara untuk melakukannya.
Ada cara lain:pernyataan siap dan placeholder. Pernyataan yang disiapkan didukung oleh setiap modern Antarmuka basis data PHP, termasuk mysqli dan PDO .
Mari kita gunakan PDO sebagai demonstrasi. Katakanlah kita ingin memperbarui sedikit data dalam tabel foo
diajukan oleh seorang pengguna.
$sql = 'UPDATE foo SET bar = ? WHERE user_id = ?';
$sh = $db->prepare($sql);
$sh->execute(array( $_POST['bar'], $_SESSION['user_id'] ));
Variabel dalam array diteruskan ke execute
ganti placeholder tanda tanya dalam kueri. Ketika ini terjadi, mereka secara otomatis lolos dan dikutip . Anda tidak perlu melarikan diri secara manual untuk membuatnya aman untuk dimasukkan ke dalam database!
Di sisi lain, Anda masih perlu memfilternya untuk konten yang tidak diharapkan, seperti HTML, Javascript, huruf di mana Anda mengharapkan angka, dll. Membuat data aman untuk dimasukkan ke dalam database adalah hanya setengah dari pertempuran .