Mencegah XSS Attack Pada Halaman Website

source code dapat di copy dengan mengarahkan cursor ke area source code kemudian mengklik tombol dengan icon kertas putih dan <>
Sebagai seorang yang berprofesi di dunia website programming, hal-hal yang berhubungan dengan keamanan website tentu harus kita utamakan mengingat semakin banyaknya tutorial dan tools tools yang dapat digunakan oleh seorang pemula sekalipun dalam mengeksploitasi halaman website yang ada. Hal ini menjadi tantangan tersendiri utamanya bagi saya pribadi. hehe

ada berbagai macam teknik serangan yang kerap digunakan hacker dalam mengeksploitasi halaman website salah satunya dengan menggunakan teknik XSS Attack. Dalam implementasinya teknik ini cukup variatif namun biasanya seorang hacker akan menguji kerentanan websie pada teknik ini dengan memanfaatkan halaman inputan form dengan menginputkan karakter yang tidak biasa seperti tag tag html atau redirect link. suatu misal jika saya memiliki sebuah source code form komentar seperti berikut.
<form method="post">
<input type="text" name="nama" placeholder="Nama Kamu"/><br/>
<input type="text" name="email" placeholder="Email Kamu"/><br/>
<textarea name="komentar" cols="20" rows="5" placeholder="Komentar Kamu">
</textarea><br/>
<input type="submit" name="kirim" value="Kirim"/><br/>
</form>

<?php 
 // Jika Kirim ditekan
 if (isset($_POST['kirim'])){
 // aksi simpan ke database
 echo $_POST['nama']."<br/>";
 echo $_POST['email']."<br/>";
 echo $_POST['komentar']."<br/>";
 }
?>
Jika user menginputkan dengan inputan yang standar (artinya hanya huruf dan angka bukan karakter aneh atau tag html) maka hal ini tidak akan ada masalah. tapi coba inputkan tag html seperti berikut.
<script>
alert('test xss');
</script>
tentu hal ini akan menjadi sebuah masalah tersendiri karena hacker dapat memanfaatkan celah ini untuk mengeksploitasi website kita lebih lanjut semisal mencuri cookie atau menginputkan redirect link. lalu bagaimana solusinya ? seperti biasa kita perlu memfilter alisa menyaring inputan yang kita miliki dengan fungsi-fungsi yang ada semisal dengan htmlentities() atau htmlspecialchar() sehingga jika dimodifikasi source code diatas akan menjadi seperti berikut
<form method="post">
<input type="text" name="nama" placeholder="Nama Kamu"/><br/>
<input type="text" name="email" placeholder="Email Kamu"/><br/>
<textarea name="komentar" cols="20" rows="5" placeholder="Komentar Kamu">
</textarea><br/>
<input type="submit" name="kirim" value="Kirim"/><br/>
</form>

<?php 
 // Jika Kirim ditekan
 if (isset($_POST['kirim'])){
 // aksi simpan ke database
 echo htmlentities($_POST['nama'])."<br/>";
 echo htmlentities($_POST['email'])."<br/>";
 echo htmlentities($_POST['komentar'])."<br/>";
 }

?>
Coba Jalankan dan Lihat perbedaannya. :)
source code dapat di copy dengan mengarahkan cursor ke area source code kemudian mengklik tombol dengan icon kertas putih dan <>

Share this

Related Posts

Previous
Next Post »

bantu kami untuk lebih baik; jika ada hal yang kurang jelas atau broken link silahkan masukan komentar anda kami akan segera menanggapi dan memperbaikinya. login ke akun gmail anda untuk menampilkan form komentar.