About Me

Senin, 14 Juli 2014

Kenali XSS (Cross Site Scripting) Yuuk


DASAR XSS
XSS? Apa itu XSS? Adakah yang sudah mengenal XSS sebelumnya? Kalau anda seorang programmer atau seorang hacker pasti sudah tak asing lagi bukan dengan istilah XSS ini? hehe.. Bagi anda yang sama sekali belum ngerti XSS tenang, disini anda akan mengenal apa itu XSS, bagaimana serangan melalui XSS, dan bagaimana pula cara menangani serangan XSS.

XSS adalah kependekan dari Cross Site Scripting. Why XSS? Why not CSS? oke, that's good question. Alasannya adalah, karna CSS sudah digunakan untuk Cascade Style Sheet. XSS adalah salah satu serangan jenis code injection, yang dilakukan penyerang dengan cara memasukkan kode html atau client script code lainnya ke suatu situs, yang seolah-olah serangan ini datang dari situs tersebut. Akibat serangan ini antara lain penyerang dapat mem-bypass keamanan di sisi klien, mendapatkan informasi sensitif, atau menyimpan aplikasi berbahaya.

TYPE XSS
Reflected XSS
Reflected XSS merupakan tipe XSS yang
paling umum dan yang paling mudah dilakukan oleh penyerang. Penyerang menggunakan social engineering agar tautan dengan kode berbahaya ini diklik oleh pengguna. Dengan cara ini penyerang bisa mendapatkan cookie pengguna yang bisa digunakan selanjutnya untuk membajak session pengguna.

Mekanisme pertahanan menghadapi serangan ini adalah dengan melakukan validasi input sebelum menampilkan data apapun yang di-generate oleh pengguna. Jangan percayai apapun data yang dikirim oleh pengguna.

Stored XSS
Stored XSS lebih jarang ditemui dan dampak serangannya lebih besar. Sebuah serangan stored XSS dapat berakibat pada seluruh pengguna. Stored XSS terjadi saat pengguna diizinkan untuk memasukkan data yang akan ditampilkan kembali. Contohnya adalah pada message board, buku tamu, dll. Penyerang memasukkan kode HTML atau client script code lainnya pada posting mereka.

Serangan ini lebih menakutkan. Mekanisme pertahanannya sama dengan reflected XSS: jika pengguna diizinkan untuk memasukkan data, lakukan validasi sebelum disimpan pada aplikasi.

MENCEGAH SERANGAN XSS
Cara untuk mengatasi XSS adalah dengan memberikan function seperti ini pada halaman insert anda
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 %20, 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:

<?php
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 <a href=\"buku_tamu.php\">ulangi</a>.";
    }
        else
    {
        echo "Terima kasih $nama telah mengisi buku tamu.";
    }
?>

Tidak ada komentar:

Posting Komentar