Dilihat dari namanya Cross Site Scripting yang berasal dari kata Cross yang berarti silang/menyilang, Site berarti tempat(halaman website), Scripting berarti pengkodean/penulisan kode. Dari sini kita dapat mendifinisikan bahwa Cross Site Scripting atau XSS berarti penyilangan suatu kode pada halaman website. Sebenarnya definisi XSS tidak hanya sebatas itu sesuai dengan tingkat pemahaman mengenai XSS. Tetapi sebenernya XSS ini macro dari suatu teknik Injection yang ada. Oleh sebab itu, jika dilihat dari efek yang ditimbulkan Cross sendiri bisa berarti pembelokkan sehingga XSS bisa diartikan penulisan kode pada sebuah halaman website agar berbelok ke target yang diinginkan. Kasus pembelokkan ini lebih dikenal dengan deface yang memiliki arti yang sebenarnya adalah merusak. Pada intinya XSS memanfaatkan kelemahan yang ada. Di mana XSS bekerja? XSS bekerja pada sisi client. Meskipun XSS ini bekerja pada sisi client tetapi efek yang dihasilkan akan memaksa server untuk menjalankan kode yang di masukkan. Cara kerja XSS XSS bisa bekerja melalui banyak cara, berikut 3 cara XSS bekerja 1. Pemanfaatan tools. Banyak sekali tools yang ada di dunia ini, contohnya adalah Live HTTP Header dan Achilles. Kedua tolls tersebut bekerja dengan cara yang hampir sama yaitu melakukan perubaha-perubahan terhadap variabel yang dikirimkan. 2. Penulisan pada source code Pada metode ini script atau kode yang ingin dijalankan ditulis pada source code yang muncul. Untuk menerapkan metode ini disarankan menggunakan browser Opera, karena Opera bisa langsung melakukan Reload terhadap source code sehingga server akan menganggap source code yang kita ubah sebagai source code aslinya dan document.referer yang tampak adalah document.refer aslinya. Dengan kata lain browser Opera bisa digunakan untuk menghindari pengecekkan document.referrer oleh server 3. Penulisan pada URL Pada metode ini script atau kode dituliskan melalui URL Bahasa pemrograman apa saja yang bisa digunakan? Bahasa pemrograman yang bisa digunakan sangat beragam, hal ini kembali kepada kemampuan kita. Ada beberapa bahasa yang bisa digunakan untuk XSS atau sebut saja untuk Injeksi, yaitu: CSS, HTML, Javascript, VBScript, Flash, SQL, dan lain-lain. 1. CSS Jika kita menggunakan jasa blogger tentunya kita akan melakukan editing pada tampilannya agar sesuai dengan apa yang kita inginkan. Jika kita hanya melakukan edit terhadap tampilan saja seperti warna background, dan lain sebgainya tidak akan menjadi masalah, tetapi jika dalam CSS tersebut kita masukkan code yang akan mengakses file lain yang berisi kode-kode tertentu akan menimbulkan efek yang dihasilkan dan tentunya kembali lagi ke kode yang terdapat pada file target tersebut. 2. HTML Denganmenggunakan HTML, kita akan memasukkan tag HTML seperti halnya tag script, iframe, div, dan lain-lain 3. Javascript Javascript merupakan salah satu bahasa pemrograman. Dengan javascript kita bisa membuat Cooke, membuat atau mengakses database, dan kita juga bisa mengirim atau bahkan membuat virus. XSS dengan javascript ini sering disebut dengan istilah Javascript injection. 4. VBScript VBScript (Visual Basic Scripting Edition) adalah sebuah bahasa script yang diinterpretasikan saat dieksekusi yang dikembangkan oleh Microsoft pada tahun 1996 yang seringnya digunakan dalam penjelajahan internet. VBScript tidak dapat digunakan untuk membuat program yang berdiri sendiri. Akan tetapi, VBScript harus dimasukkan ke dalam sebuah berkas HTML. VBScript dapat melakukan hal yang sama seperti JavaScript. Sudah banyak juga virus yang ditulis dengan VBScript ini. 5. Flash Dengan menggunakan flash kita bisa menuju lokasi lain atau melompat ke URL lain. 6. SQL SQL termasuk dalam kategori XSS dikarenakan SQL Injection memanfaatkan vulner sebuah website dan memaksakan potongan kode agar dieksekusi oleh server yang pada intinya agar server selalu menghasilkan nnilai benar saat melakukan prosesnya. Untuk mengurangi terjadinya injection-injetion yang ada adalah: 1. Hindari input-input yang memungkinkan client untuk menyisipkan karakter dan tag html. 2. Selalu cek input dari client apakah input tersebut sudah benar berupa huruf cetak dan angka saja. 3. Gunakan document.referrer untuk mengecek keaslian data atau source code. 4. Hindari metode pengiriman GET, jadi gunakan selalu metode POST. 5. Jika menggunakan PHP, set Register Global menjadi off. Hindari penggunaan cookie untuk validasi. Gunakan session yang hanya bekerja pada sisi server. Dan setting php.ini untuk membatasi fungsi-fungsi apa saja yang bisa diakses. Atau dengan kata lain selalu blok penggunaan fungsi-fungsi yang dianggap rawan. 6. Jika website anda menyediakan suatu database, selalu gunakan Store Procedure untuk melakukan semua aktivitas yang berhubungan dengan database.