Read Blog

Apa itu XSS dan Bagaimana Cara mengatasinya.

Apa itu XSS dan Bagaimana Cara mengatasinya.

XSS atau Cross Site Scripting adalah teknik yang digunakan untuk menambahkan script pada sebuah website yang akan dieksekusi oleh user lain pada browser user lain tersebut.

Kunci utama pada XSS yaitu user dapat memasukkan data melalui input form (contohnya input form seperti kita akan mem-posting sesuatu di forum) yang kemudian akan ditampilkan kemudian oleh user lain atau user itu sendiri. Kalau si programmer nya tidak men-strip-tags elemen HTML atau tanda bahasa pemrograman lain ya dengan udah akan bisa di cross site scripting.

Contohnya gampang saja. Kalau ada buku tamu di sebuah website isi saja dengan [removed]alert(‘Anak-anak KIOSS’);[removed]

Kalau keluar alert javascript di browser berarti site tersebut bisa di XSS. Biasanya site2 partai politik dengan mudah bisa di XSS karena programmernya kurang jeli.

Cara untuk mengatasi XSS adalah dengan memberikan function seperti ini pada halaman insert anda

 
function antixss($data)
{
    $xss = htmlspecialchars(trim($data));
    return $xss;
}
 
 

Dari source diatas kita melihat 2 Fungsi, yakni fungsi htmlspecialchars dan trim, lalu apa sih kegunaanya?

  • Htmlspecialchars : berfungsi untuk mengabaikan tag html, misal spasi dirubah menjadi , sehingga ketika ada attacker menyisipkan kode html, maka tidak akan terbaca sebagai Tag HTML, tetapi teks biasa.
  • Trim : trim disini berfungsi untuk menghapus karakter spasi di depan teks.

Untuk penggunaan fungsi anti xss sebagai berikut, misal kita akan gunakan di file simpan.php jadi kode lengkapnya sebagai berikut:

 
mysql_connect("localhost","root","") or die ("gagal Koneksi");
mysql_select_db("db_guestbook") or die ("gagal koneksi database");
 
function antixss($data)
{
    $xss = htmlspecialchars(trim($data));
    return $xss;
}
 
$nama   = antixss($_POST['nama']);
$email  = antixss($_POST['email']);
$web    = antixss($_POST['web'];);
$pesan  = antixss($_POST['pesan']);
$tgl    = date('Y-m-d');
$query  = mysql_query("insert into buku_tamu values('','$nama','$email','$web','$pesan','$tgl')");
if(!$query)
    {
        echo "Gagal simpan buku tamu, silahkan ulangi.";
    }
        else
    {
        echo "Terima kasih $nama telah mengisi buku tamu.";
    }
?>
 
 


Admin,


Komentar Anda


749


Hubungi Saya

Apakah Anda siap untuk bekerja sama?

Mari kita mulai sebuah Proyek! Hubungi Saya.

Saya sangat senang apabila perusahaan saya dapat bekerja sama dengan bisnis anda. Apabila anda memiliki pertanyaan, silahkan hubungi saya.

//