Images

beberapa fungsi PHP yang bisa digunakan sebagai alternatif anti sql injection

 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 &lt;

> (lebih besar dari) menjadi &gt;

Tip: Untuk mengubah entitas HTML khusus kembali menjadi karakter,

gunakan fungsi htmlspecialchars_decode().

Contoh : echo htmlspecialchars("This is some <b>bold</b> text.");

ResultThis 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>");

ResultHello 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
$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));
}

mysqli_close($con);
?>