Fungsi mysqli_real_escape_string() Di PHP
Sahabat senterwebs dot com, dalam pemrograman PHP MYSQL , Anda mungkin bertanya Kegunaan atau Fungsi mysql_real_escape_string() Di PHP , mysql_real_escape_string merupakan salah satu fungsi di PHP yang digunakan Untuk mencegah dari Serangan SQL injection, Salah satu cara yang dapat digunakan untuk mencegah sql injection yaitu dengan menggunakan fungsi Mysqli_real_escape_string().. dimana ini biasa terdapat pada METHOD pengiriman data yang akan di tampung di database.
mysqli_real_escape_string() adalah fungsi PHP yang digunakan untuk memberi perlindungan / (mencegah Sql Injection) terhadap karakter-karakter unik atau karakter khusus sebelum mengirim query ke MYSQL yang dapat membahayakan data termasuk dari serangan SQL INJECTION.
OK.. Langsung Saja Kita ke penjelasan code dari Mysqli_real_escape string , biasanya kita menampung data dari method POST dan kita simpan dalam variabel akan berbentuk seperti ini :
//Misalkan username dan password didapatkan dari $_POST
$username = $_POST['username'];
$password = $_POST['password'];
Jika kita gunakan fungsi mysqli_real_escape_string()
//Misalkan username dan password didapatkan dari $_POST
$username = mysqli_real_escape_string($koneksinya, $_POST['username']);
$password = mysql_real_escape_string($koneksinya, $_POST['password']);
Sedikit perbedaan jika kita menggunakan MYSQLi , kita harus menambahkan koneksi-Nya
//Misalkan username dan password didapatkan dari $_POST
$username = mysqli_real_escape_string($koneksi, $_POST['username']);
$password = mysqli_real_escape_string($koneksi, $_POST['password']);
Nah.. Untuk Contoh penggunaan dalam query , Berikut ini adalah contoh penggunaanya :
<?php
$koneksi=mysqli_connect("localhost","my_user","my_password","my_db");
// Check connection
if (mysqli_connect_errno()) {
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
$username = mysqli_real_escape_string($koneksi, $_POST['username']);
$password = mysqli_real_escape_string($koneksi, $_POST['password']);
$sql="INSERT INTO Users (username,password)
VALUES ('$username', '$password')";
if (!mysqli_query($koneksi,$sql)) {
die('Error: ' . mysqli_error($koneksi));
}
echo "1 record added";
mysqli_close($koneksi);
?>
Berikut adalah cara klasik dan aman untuk menggunakan fungsi ini sebagai pembersih masukan untuk parameter string.
User input (attack attempt).
a' OR 'a'='a
Sanitizing input.
$param = mysql_real_escape_string($_GET['n']);
Query Yang Dihasilkan.
SELECT id FROM products WHERE name='a\' OR \'a\'=\'a'
Karena contoh terakhir diamankan dengan SQL INJECTION, kueri yang dihasilkan tidak akan menghasilkan apa-apa.Menggunakan mysql_real_escape_string merupakan cara sederhana untuk mengamankan aplikasi terhadap SQL INJECTION, namun ini jauh dari kata yang sempurna. Setiap kali fungsi ini digunakan untuk membersihkan data,Namun mysqli_real_escape_string, ini akan memperlambat server database Anda Jika digunakan dalam bentuk besar atau banyak.