Fungsi mysqli_real_escape_string() Di PHP

Publish Date : 09-12-2023 , dibaca 19161 kali, Hari ini dibaca : 1 kali ,0 comments

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. 

Produk Rekomendasi

Artikel Terkait

Diskusi



wa