Tutorial Cara Menutup XSS Vulnerability (Cross Site Scripting)


 Hai guys , malam hari ini saya bakalan kasih sedikit tutorial yang bisa dibilang sederhana tapi cukup penting untuk kalian , apa tuh? kalian baca judulnya dulu hehe.. nah disini admin bakalan jelasin dulu ke kalian semua apa itu XSS, XSS(Cross Site Scripting) adalah sebuah serangan yang berjenis code injection(injeksi kode) dimana seorang penyerang dapat memasukkan sebuah client script ataupun kode HTML ke dalam sebuah web dimana web tersebut akan merespon dengan output dari code yang diinjeksikan oleh penyerang tadi.

Sebagai contoh , semisal saya mempunyai sebuah web dan didalamnya terdapat sebuah searchbox, dengan begini saya harus memperhatikan apa saja yang boleh diterima dan dieksekusi oleh searchbox tersebut, jika saya memasukkan script javascript dan saat saya eksekusi muncul pop up dengan pesan yang sudah saya buat diawal , maka sudah dapat dipastikan web yang saya miliki rentan terhadap serangan XSS. Pada kasus seperti ini seorang penyerang bisa saja dengan mudah memasukkan sebuah client script yang fungsinya untuk redirect ke web milik penyerang dengan maksud ingin menambah backlink ataupun traffic kedalam web page penyerang tersebut.

</script>alert(1);</script>
Contoh payload XSS

Nah sampai sini admin rasa kalian sudah mengerti dan paham apa itu XSS, cara kerja dan juga sedikit gambaran contohnya. Selanjutnya admin akan langsung beralih ke fokus pembahasan kita malam ini yaitu tentang bagaimana sebuah bug XSS ini dapat ditutup, Oke kalau begitu tidak usah berlama lama lagi simak tutorialnya sampai habis cekidott

Disini admin mempunyai sebuah source code php yang masih rentan terhadap serangan XSS
<?php
 error_reporting(0);
 if(isset($_POST['data']))
 $data = $_POST['data'];
?>
<center>
 <form method="get" action="x.php">
  <p>
            <label>Cari Data Mahasiswa </label>
            <input type="text" name="data" placeholder="Irvan Dwi Setiawan" />
        </p>
  <p>
   <input type="submit" value="kirim">
  </p>
 </form>
</center>
<?php 
$data = $_GET["data"];
echo ("$data"); //disini letak kesalahannya dimana data yang dimasukkan tidak difilter terlebih dahulu
?>

dari source code diatas jika dijalankan dan mencoba memasukkan sebuah syntax javascript hasilnya



 nah untuk mencegah bug seperti ini maka kita bisa menggunakan sebuah fungsi didalam bahasa pemograman php yaitu htmlspecialchars(), ubah syntax nya seperti ini
<?php 
$data = $_GET["data"];
echo htmlspecialchars("$data"); //disini fungsi "htmlspecialchars()" digunakan untuk menonaktifkan syntak html/javascript yang di input 
?>

jika dijalankan maka web page kita hanya menganggap syntax javascript yang kita masukkan sebagai karakter biasa bukan sebuah script yang perlu dieksekusi, hasilnya kira kira seperti ini


Nah dari penggunaan fungsi htmlspecialchars() diatas dapat kita simpulkan bahwa fungsi tersebut berjalan dengan cara menonaktifkan perintah dari syntax javascript ataupun html , dengan begitu data yang dimasukkan akan difilter terlebih dahulu , apabila data tersebut merupakan sebuah syntax html/javascript maka otomatis akan dimatikan.

Oke mungkin cukup itu saja yang admin bisa bagikan malam hari ini, untuk kalian yang kurang jelas silahkan tanya lewat kolom komentar dibawah , semoga ilmunya bermanfaat untuk kalian, jangan lupa share ke teman-teman kalian , agar mereka tahu apa yang kalian tau. See u next time guyss bhayyy...



Posting Komentar

1 Komentar

Emoji
(y)
:)
:(
hihi
:-)
:D
=D
:-d
;(
;-(
@-)
:P
:o
:>)
(o)
:p
(p)
:-s
(m)
8-)
:-t
:-b
b-(
:-#
=p~
x-)
(k)