Apa itu XSS?
XSS merupakan kependekan yang digunakan untuk istilah cross site scripting.
XSS merupakan salah satu jenis serangan injeksi code (code injection attack). XSS dilakukan oleh penyerang dengan cara memasukkan kode HTML atau client script code lainnya ke suatu situs. Serangan ini akan seolah-olah datang dari situs tersebut. Akibat serangan ini antara lain penyerang dapat mem-bypass keamanan di sisi klien, mendapatkan informasi sensitif, atau menyimpan aplikasi berbahaya.
Alasan kependekan yang digunakan XSS bukan CSS karena CSS sudah digunakan untuk cascade style sheet.

Contoh script yang disisipkan pada tag HTML :
<ScRipT>alert("XSS");</ScRipT>

 Tipe XSS (Cross Site Scripting)
Reflected XSS
Stored 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.



Cara Mencegah Serangan XSS
Untuk menghindari Cross-site Scripting  adalah dengan membuat karakter-karakter yang memiliki ’makna’ di dalam HTML dan JavaScript untuk diubah menjadi named entity, yaitu menkonversi karakter khusus seperti < menjadi &lt;, dan karakter > menjadi &gt;. Atau cara lainnya adalah dengan menghilangkan sama sekali seluruh tag HTML atau script dari inputan user.

Untuk kedua keperluan ini, PHP memiliki fungsi htmlspecialchars() dan fungsi strip_tags(). Fungsi htmlspecialchars() akan mengkonversi 4 karakter ’khusus’ HTML menjadi named entity sehingga tidak akan di ’proses’ oleh web browser. Keempat karakter tersebut adalah: <, >, & dan  “. Keempat karakter khusus inilah yang membuat web browser akan menerjemahkan sebuah string menjadi kode HTML/JavaScript.
Source : xss

Sekian pengetikan dari artikel ini, mohon maaf bila ada salah pengetikan atau lainnya, semoga artikel ini bermanfaat, Terimakasih.