XSS (Cross-Site Scripting)
XSS (Cross-Site Scripting) adalah jenis serangan keamanan yang memungkinkan penyerang untuk menyuntikkan kode JavaScript atau kode lainnya ke dalam halaman web yang sah, sehingga dapat dieksekusi oleh browser pengguna.
Jenis-Jenis XSS
1. Stored XSS: XSS yang disimpan di server dan dapat diakses oleh pengguna lain.
2. Reflected XSS: XSS yang dikirimkan melalui URL dan dieksekusi oleh browser pengguna.
3. DOM-based XSS: XSS yang dieksekusi oleh browser pengguna tanpa perlu mengirimkan permintaan ke server.
Cara Kerja XSS
1. Penyerang menyuntikkan kode: Penyerang menyuntikkan kode JavaScript atau kode lainnya ke dalam halaman web yang sah.
2. Kode dieksekusi oleh browser: Kode yang disuntikkan dieksekusi oleh browser pengguna.
3. Pengguna terkena serangan: Pengguna dapat terkena serangan seperti pencurian data, perubahan password, atau instalasi malware.
Contoh Serangan XSS
1. Pencurian data: Penyerang dapat mencuri data pengguna seperti username, password, atau informasi kartu kredit.
2. Perubahan password: Penyerang dapat mengubah password pengguna sehingga pengguna tidak dapat mengakses akunnya.
3. Instalasi malware: Penyerang dapat menginstal malware pada perangkat pengguna.
Cara Mencegah XSS
1. Validasi input: Validasi input pengguna untuk memastikan bahwa input tidak mengandung kode berbahaya.
2. Penggunaan karakter escape: Penggunaan karakter escape untuk memastikan bahwa kode tidak dieksekusi oleh browser.
3. Penggunaan Content Security Policy (CSP): Penggunaan CSP untuk membatasi kode yang dapat dieksekusi oleh browser.
4. Penggunaan HTTPS: Penggunaan HTTPS untuk memastikan bahwa komunikasi antara browser dan server aman.
Jenis-Jenis XSS
1. Stored XSS: XSS yang disimpan di server dan dapat diakses oleh pengguna lain.
2. Reflected XSS: XSS yang dikirimkan melalui URL dan dieksekusi oleh browser pengguna.
3. DOM-based XSS: XSS yang dieksekusi oleh browser pengguna tanpa perlu mengirimkan permintaan ke server.
Jenis XSS | Ciri Utama | Terjadi Didalam | Contoh Umum |
---|---|---|---|
Stored (Persistent) |
Skrip didimpan permanen di Server |
Server-side (Database, Logs, dsb) |
Forum, Komentar, Profil User |
Reflected (Non- Persistent) |
Skrip ikut dalam URL dan Langsung dipantulkan oleh server |
Server-side (respon langsung) |
URL search, form pencarian |
DOM-Based | Skrip dijalankan & dimanipulasi di sisi klien lewat DOM |
Client-side (javaScript di browser) |
JS ambil data dari URL/hash dan render langsung |
Cara Kerja XSS
1. Penyerang menyuntikkan kode: Penyerang menyuntikkan kode JavaScript atau kode lainnya ke dalam halaman web yang sah.
2. Kode dieksekusi oleh browser: Kode yang disuntikkan dieksekusi oleh browser pengguna.
3. Pengguna terkena serangan: Pengguna dapat terkena serangan seperti pencurian data, perubahan password, atau instalasi malware.
Contoh Serangan XSS
1. Pencurian data: Penyerang dapat mencuri data pengguna seperti username, password, atau informasi kartu kredit.
2. Perubahan password: Penyerang dapat mengubah password pengguna sehingga pengguna tidak dapat mengakses akunnya.
3. Instalasi malware: Penyerang dapat menginstal malware pada perangkat pengguna.
Cara Mencegah XSS
1. Validasi input: Validasi input pengguna untuk memastikan bahwa input tidak mengandung kode berbahaya.
2. Penggunaan karakter escape: Penggunaan karakter escape untuk memastikan bahwa kode tidak dieksekusi oleh browser.
3. Penggunaan Content Security Policy (CSP): Penggunaan CSP untuk membatasi kode yang dapat dieksekusi oleh browser.
4. Penggunaan HTTPS: Penggunaan HTTPS untuk memastikan bahwa komunikasi antara browser dan server aman.