Mencegah CSS & HTML Injection Pada Form Input
Keamanan suatu website tentu harus menjadi perhatian utama bagi para web developer. Karena jika tidak mementingkan keamanan websitenya maka siapapun bisa masuk dan merubah isi data dari website si web developer tersebut.
Salah satu celah atau bug dari suatu website yaitu salah satunya CSS & HTML Injection ini. Nah, bagaimana cara untuk mencegahnya? Disini saya memiliki dua cara dengan penggunaan string yang berbeda dan memiliki hasil dan tujuan yang berbeda.
Sebagai contoh, saya memiliki code program seperti berikut. Jika diperhatikan code tersebut, kita tidak melihat adanya filter yang seharusnya ada untuk mencegah html injection terjadi.
Nah, lalu bagaimana caranya mencegah hal tersebut? Seperti yang saya katakan sebelumnya, bahwa disini ada dua cara untuk mencegah html injection itu terjadi, yaitu dengan penggunaan string:
Untuk penggunaannya silahkan perhatikan kode berikut yang ditandai warna hijau.
Sedangkan gambar berikut ini adalah hasil menggunakan strip_tags().
Mana yang lebih baik? Tentukan pilihanmu, sekarang haha. Terimakasih. Semoga bermanfaat.
Salah satu celah atau bug dari suatu website yaitu salah satunya CSS & HTML Injection ini. Nah, bagaimana cara untuk mencegahnya? Disini saya memiliki dua cara dengan penggunaan string yang berbeda dan memiliki hasil dan tujuan yang berbeda.
Sebagai contoh, saya memiliki code program seperti berikut. Jika diperhatikan code tersebut, kita tidak melihat adanya filter yang seharusnya ada untuk mencegah html injection terjadi.
<html>Perhatikan gambar diatas, ketika saya mengetikkan plaintext 'unsadacoder' maka akan tampil seperti biasanya ya. Namun ketika saya mengetikkan kode html pada form input tersebut maka akan tampil seperti gambar berikut ini.
<head>
<title>Unsada Coder</title>
</head>
<body>
<form method="POST">
<input type="text" name="cari" placeholder="Cari Apa?">
<input type="submit" name="submit" value="Cari">
</form>
<?php
error_reporting(0);
$cari = $_POST['cari'];
echo '<br>Hasil pencarian '.$cari.' tidak ditemukan.';
?>
</body>
</html>
Nah, lalu bagaimana caranya mencegah hal tersebut? Seperti yang saya katakan sebelumnya, bahwa disini ada dua cara untuk mencegah html injection itu terjadi, yaitu dengan penggunaan string:
- htmlspecialchars()
- strip_tags()
Untuk penggunaannya silahkan perhatikan kode berikut yang ditandai warna hijau.
<html>Berikut ini adalah contoh dari hasil filter menggunakan htmlspecialchars().
<head>
<title>Unsada Coder</title>
</head>
<body>
<form method="POST">
<input type="text" name="cari" placeholder="Cari Apa?">
<input type="submit" name="submit" value="Cari">
</form>
<?php
error_reporting(0);
$cari = htmlspecialchars($_POST['cari']);
echo '<br>Hasil pencarian '.$cari.' tidak ditemukan.';
?>
</body>
</html>
Sedangkan gambar berikut ini adalah hasil menggunakan strip_tags().
Mana yang lebih baik? Tentukan pilihanmu, sekarang haha. Terimakasih. Semoga bermanfaat.