Cross site scripting adalah kelemahan
keamanan yang terjadi pada penggunaan teknologi dynamic page. Cross site
scripting dapat diartikan sebagai kelemahan yang terjadi akibat
ketidakmampuan server dalam memvalidasi input yang diberikan oleh pengguna.
Algoritma, yang digunakan untuk pembuatan halaman yang diinginkan, tidak mampu melakukan
penyaringan terhadap masukkan tersebut. Hal ini memungkinkan halaman yang
dihasilkan menyertakan perintah yang sebenarnya tidak diperbolehkan.
Cross site scripting merupakan kelemahan
yang populer untuk dieksploitasi.
Namun sayangnya, banyak penyedia
layanan yang tidak mengakui kelemahan
tersebut dan melakukan perubahan pada
sistem yang mereka gunakan. Citra penyedia
layanan merupakan harga yang
dipertaruhkan ketika mereka mengakui kelemahan
tersebut. Sayangnya dengan tindakan
ini konsumen atau pengguna menjadi pihak
yang dirugikan.
Cara Kerja Cross Site Scripting
Cross site scripting bekerja bak penipu dengan kedok yang mampu mengelabui orang yang tidak waspada. Elemen penting dari keberhasilan cross site scripting adalah social engineering yang baik dari si penipu. Social engineering merupakan elemen terpenting yang menentukan keberhasilan penipuan yang akan dilakukan. Cross site scripting memampukan seseorang yang tidak bertanggungjawab melakukan penyalahgunaan informasi penting.
Sebelum sampai pada proses penyalahgunaan tersebut, penyerang mengambil langkah-langkah dengan mengikuti pola tertentu. Langkah pertama, penyerang melakukakan pengamatan untuk mencari web-web yang memiliki kelemahan cross site scripting.
Langkah kedua, sang penyerang mencari tahu apakah web tersebut menerbitkan informasi yang dapat digunakan untuk melakukan pencurian infomasi lebih lanjut. Informasi tersebut biasanya berupa cookie. Langkah kedua ini tidak selalu dijalankan.
Langkah ketiga, sang penyerang membujuk korban untuk mengikuti sebuah link yang mengandung kode, ditujukan untuk mendapatkan informasi yang telah disebutkan sebelumnya. Kemampuan social engineering dari sang penyerang diuji disini. Setelah mendapatkan informasi tersebut, sang penyerang melakukan langkah terakhir, pencurian maupun pengubahan informasi vital.
Untuk Antisipasi
Pencegahan Cross site scripting sebenarnya
merupakan bagian dari proses perancangan sistem yang akan diluncurkan oleh
penyedia data. Jika sistem tersebut menggunakan teknologi dynamic web page,
berbagai pertimbangan perlu dilakukan.
1. Teknologi Static Web Pages
Cara terbaik dan efektif untuk
menghindari terjadinya Cross site scripting adalah menghindari
penggunaan teknologi dynamic web page. Halaman yang statis tentu saja
memberikan kontrol yang lebih di sisi server dibandingkan dengan halaman
web yang dinamis. Halaman web yang dihasilkan secara statis akan memberikan
kelakukan yang lebih pasti dibandingkan halaman web yang dihasilkan secara
dinamis. Konsekuensi yang ditanggung adalah penyedia layanan harus merelakan
sifat interaktif yang mungkin diinginkan.
2. Metode POST
Metode POST adalah metode
pengirimana data di mana variabel yang dikirimkan tidak disertakan pada link
yang digunakan. Metode POST menyembunyikan variabel yang dikirimkan dari
pengguna. Metode ini menjamin kode tidak dapat diinjeksikan melalui link yang
telah didesain oleh penyerang. Link merupakan satu satunya cara yang dapat
digunakan oleh penyerang untuk mengeksploitasi cross site scripting. Oleh
karena itu, metode ini ampuh untuk mengatasi cross site scripting. Kekurangan
metode ini, pengguna tidak dapat menyimpan link favorit untuk mempermudah
navigasi
3. Pengkodean Karakter Spesial pada Link
Untuk men-non aktifkan kode script
yang diinjeksikan, kita perlu membuat aplikasi yang mampu mengkodekan karakter
tersebut, sehingga karakter tersebut tidak dapat dimengerti oleh browser yang
digunakan. Proses pengkodean juga harus mencakup HTML escape code (%hexnumber).
Pemfilteran ini biasanya dilakukan
dengan menghilangkan karakter karakter spesial yang penting dalam pengkodean
dan juga karakter karakter ekuivalen yang dikodekan. Pengkodean yang biasa
digunakan adalah HTML escape
encoding. Tabel di bawah ini
menunjukkan karakter tersebut dengan ekuivalen karakter yang telah dikodekan.
Table
9 HTML Escape Encoding
Char
|
Code
|
Char
|
Code
|
;
|
%3b
|
{
|
%7b
|
/
|
%2f
|
}
|
%7d
|
?
|
%3f
|
|
|
%7c
|
:
|
%3a
|
\
|
%5c
|
@
|
40%
|
^
|
%5e
|
=
|
%3d
|
~
|
%7e
|
&
|
26%
|
[
|
%5b
|
<
|
%3c
|
]
|
%5d
|
>
|
%3e
|
`
|
60%
|
“
|
22%
|
%
|
25%
|
#
|
23%
|
‘
|
27%
|
4. Hilangkan kemampuan Scripting
Cross site scripting disebabkan keberhasilan penyerang menginjeksi kode pada
halaman web yang dihasilkan. Jika kode yang diinjeksikan tersebut tidak dapat
diinterpretasikan, halaman web dapat ditampilkan dengan aman. Kekurangan metode
ini tentu saja kegagalan fungsi-fungsi yang ditulis dengan mengunakan script
untuk bekerja.
5. HTTP-Only Cookie
Metode ini membatasi akses yang
dapat dilakukan terhadap cookie. Dengan menggunakan HTTP-only cookie,
browser pengguna masih dapat menerima cookie yang dikirimkan oleh
penyedia layanan. Namun cookie tidak dapat diakses melalui script yang
dieksekusi pada browser pengguna. Jadi script yang diinjeksikan kepada browser
pengguna tidak akan dapat melakukan transfer cookie yang ada. Metode ini
tersedia pada browser Internet Explorer 6 Service Pack 1. Untuk menggunakan
metode, pada kepala HTTP response tambahkan atribut HttpOnly.
6. Ikuti Link Utama
Metode ini ditujukan bagi pengguna
layanan yang menggunakan halaman web dinamis. Kebiasaan yang baik utuk
mengikuti link yang berasal dari link utama yang disediakan oleh penyedia
layanan. Link–link selain daripada link utama sebaiknya dihindari.
Tidak ada komentar:
Posting Komentar