berikut beberapa fungsi PHP yang bisa anda gunakan untuk terhindar dari hacker saat melakukan sql injection ke website atau web app anda.
1. htmlspecialchars()
Fungsi htmlspecialchars () mengubah beberapa karakter yang telah ditentukan menjadi entitas HTML. Karakter yang telah ditentukan sebelumnya adalah:
& (ampersand) menjadi &
"(petik ganda) menjadi "
'(kutipan tunggal) menjadi '
<(kurang dari) menjadi <
> (lebih besar dari) menjadi >
Tip: Untuk mengubah entitas HTML khusus kembali menjadi karakter,
gunakan fungsi htmlspecialchars_decode().
Contoh : echo htmlspecialchars("This is some <b>bold</b> text.");
Result : This is some <b>bold</b> text.
2. strip_tags()
Fungsi strip_tags() menghapus string dari tag HTML, XML, dan PHP.
Catatan: Komentar HTML selalu dihilangkan. Ini tidak dapat diubah dengan parameter allow.
Contoh : echo strip_tags("Hello <b>world!</b>");
Result : Hello world!
3. stripslashes()
Fungsi stripslashes() menghilangkan garis miring terbalik yang ditambahkan oleh fungsi addlashes().
Tips: Fungsi ini bisa digunakan untuk membersihkan data yang diambil dari database atau dari formulir HTML.
Contoh : echo stripslashes("Who\'s Peter Griffin?");
Result : Who's Peter Griffin?
4. real_escape_string()
Fungsi real_escape_string () / mysqli_real_escape_string () lolos dari karakter khusus dalam string untuk digunakan dalam kueri SQL, dengan mempertimbangkan kumpulan karakter saat ini dari koneksi.
Fungsi ini digunakan untuk membuat string SQL legal yang dapat digunakan dalam pernyataan SQL. Asumsikan kita memiliki kode berikut:
<?php
$lastname = "D'Ore";
$sql="INSERT INTO Persons (LastName) VALUES ('$lastname')";
// This query will fail, cause we didn't escape $lastname
if (!$mysqli -> query($sql)) {
printf("%d Row inserted.\n", $mysqli->affected_rows);
}
?>
Syntax
Object oriented style:
$mysqli -> real_escape_string(escapestring)
Procedural style:
mysqli_real_escape_string(connection, escapestring)
Nilai Parameter
Deskripsi Parameter
koneksi Diperlukan. Menentukan koneksi MySQL yang akan digunakan
escapestring Diperlukan. String yang akan di-escape. Karakter yang dikodekan adalah NUL (ASCII 0), \ n, \ r, \, ', ", dan Control-Z.
Contoh - Procedureal Style
<?php
mysqli_close($con);
$con = mysqli_connect("localhost","my_user","my_password","my_db");
if (mysqli_connect_errno()) {
echo "Failed to connect to MySQL: " . mysqli_connect_error();
exit();
}
// Escape special characters, if any
$firstname = mysqli_real_escape_string($con, $_POST['firstname']);
$lastname = mysqli_real_escape_string($con, $_POST['lastname']);
$age = mysqli_real_escape_string($con, $_POST['age']);
$sql="INSERT INTO Persons (FirstName, LastName, Age) VALUES ('$firstname', '$lastname', '$age')";
if (!mysqli_query($con, $sql)) {
printf("%d Row inserted.\n", mysqli_affected_rows($con));
}
?>