Cara Mengamankan Website Dari Bypass Sql
Berikut tips cara mengatasi SQL injection login di php sehingga dapat mencegah serangan yang dilakukan oleh intruder yang biasanya melalui form login. Yaitu menggunakan script anti SQL injection yang telah tersedia di dalam sistem PHP dan beberapa teknik lainnya, seperti berikut ini.
- Menggunakan fungsi mysqli_real_escape_string()
- Menggunakan fungsi addslashes()
- Menggunakan encript password.
1. Mencegah SQL injection login dengan fungsi mysqli_real_escape_string().
Jika diperlukan, penggunaan fungsi tersebut dapat digabungkan dengan fungsi trim(). Berikut adalah contoh baris kode script dengan fungsi mysqli_real_escape_string.
$username =mysqli_real_escape_string($conn, $_POST['username']); $password =mysqli_real_escape_string($conn, $_POST['password']); $query =mysqli_query($conn, "SELECT * FROM tb_user WHERE username='$username' AND password='$password'");
Peranan fungsi mysqli_real_escape_string dalam mengatasi SQL injection login di php adalah untuk mem-bypass spesial karakter dalam query SQL, sehingga ketika attacker menyertakan karakter seperti ' ! ^ ] " dan lain sebagainya, maka fungsi ini tidak akan membaca karakter tersebut.
2. Mencegah SQL injection login dengan fungsi addslashes().
Jika diperlukan, penggunaan fungsi addslashes sebagai script anti SQL injection juga dapat digabungkan dengan fungsi trim(). Berikut adalah contoh baris kode script dengan fungsi addslashes.
$username =addslashes($conn, $_POST['username']); $password =addslashes($conn, $_POST['password']); $query =mysqli_query($conn, "SELECT * FROM tb_user WHERE username='$username' AND password='$password'");
3. Mencegah SQL injection login dengan encript password.
Tips atau cara lain untuk mencegah serangan SQL injection pada form login php adalah dengan melakukan enkripsi password sebelum disubmit kedalam database. Jenis enkripsi yang umum digunakan adalah MD5, atau silahkan gunakan fungsi enscript lainnya.
Berikut adalah contoh baris kode script login dengan enkripsi md5.
$username =mysqli_real_escape_string($conn, $_POST['username']); $password =mysqli_real_escape_string($conn, md5($_POST['password'])); $sql =mysqli_query($conn, "SELECT * FROM tb_user WHERE username='$username' AND password='$password'");
Sebagaimana contoh script php anti SQL injection di atas, penggunaan encript password md5 ternyata juga dapat digabungkan sekaligus dengan fungsi mysqli_real_escape_string.









