Ringkasan dokumen tersebut adalah: (1) Dokumen tersebut membahas tentang bahaya cross-site scripting (XSS) dan cara-cara mencegahnya, (2) XSS terjadi ketika input pengguna tidak diteliti dan disajikan sebagai kode JavaScript, mengakibatkan penyerang dapat menyisipkan kode jahat, (3) Pencegahan untuk pengembang adalah meneliti input, menggunakan CSP, dan menghindari mengembalikan data mentah.
3. Apa saja yang akan di bahas?
1. Apa itu Javascript
2. Apa itu Cookie
3. Apa itu XSS
4. Terminologi XSS
5. Flow XSS
6. Bahaya XSS
7. Tindakan Preventif
5. Javascript
Javascript adalah sebuah bahasa pemrograman yang
terstruktur, digunakan banyak orang untuk membantu
HTML dan CSS agar lebih interaktif dengan user.
Javascript adalah Client-side language, namun saat adanya
Node.js, membuat javascript bisa mengeksekusi sebuah
kode pada server.
7. Cookies
Web cookies adalah sebuah bentuk text sederhana yang
berguna bagi browser sebagai identitas, yang memuat rekam
jejak browsing, preferensi setting dll..
Cookies terbagi 2:
1. SESSION COOKIES
Bersifat temporial, akan hangus jika browser di tutup.
cookie ini memuat terakhir browsing, dan browsing apa
saja.
2. PERSISTENCE COOKIE BY FIRST PARTY
Cookie yang tersimpan pada perangkat meskipun
browser di tutup, namun cookie tersebut memiliki
expiration date.
ini digunakan untuk sebuah website yang kita punya,
fungsinya agar bisa automaticly login dan menyimpan
preference setting.
10. Terminologi XSS / Cross-site Scripting
Nama “Cross-site” Scripting pada XSS pertama
kali tercetus ketika awal-awal javascript
muncul, terdapat sebuah temuan website jahat,
yang memanfaatkan javascript untuk
memunculkan web lain kedalam frame web
yang berbeda, serta dapat menginjeksi
javascript dari sumber yang berbeda ( cross-site
).
11. Bagaimana XSS / Cross-site Scripting
terjadi??
XSS terjadi dikarnakan tidak tersanitasi / filternya
inputan dari user, yang menyebabkan webserver
membaca mentah-mentah inputan sebagai javascript
code.
Ini mengakibatkan, Hacker / Attacker dapat
menyisipkan / menambahkan / memanipulasi code
Javascript pada web aplikasi sesesorang.
12. Reflected XSS
Ialah kondisi dimana webserver menampilkan langsung request HTTP data dari
user secara tidak aman, dimana menyebabkan user dapat mengirimkan request
berupa malicious code javascript.
22. Tindakan Preventif
- Hindari membuka link untrusted dari sumber
untrusted
- Gunakan Addons browser untuk management
cookies, seperti privacy badger.
- Atau bisa ke settings browser chrome > cookies or
site other data > Block Third party Cookies
- Gunakan No Script pada browser
24. Tindakan Preventif
- Gunakan CSP, X-frame-options, Secure-flags
- Jangan pernah mereturn data mentah-mentah,
tanpa di sanitasi terlebih dahulu.
Gunakan HTML Entities
- Minimalisir Input dari user.
- Gunakan Back-End untuk validasi.
25. Refferensi
Jeremiah Grossman: The origins of Cross-Site Scripting (XSS)
web application - XSS: terminology - Information Security Stack Exchange
34 (d-nb.info)
Describing XSS: The story hidden in time | by Ryan Oberfelder | Medium
Reflected XSS Archives - Red Timmy Security
[PDF] Exploitation of Cross-Site Scripting (XSS) Vulnerability on Real World Web Applications and its Defense
| Semantic Scholar
(PDF) Cross Site Scripting Attacks in Web-Based Applications: A Critical Review on Detection and Prevention
Techniques (researchgate.net)
Dulu disebut “CSS” karna banyak dev suka bingung penyebutanya, suka ketuker sama Cascading style-sheets maka di ubah mencadi XSS
Refrensi: Jeremiah Grossman: The origins of Cross-Site Scripting (XSS)
Sabuah case, website yang mengambil inputan untuk memilih bahasa dengan GET method.
Berikut adalah source code / bagaimana pemilihan bahasa tadi bekerja dalam sebuah codingan.
Tampak setelah ter render browser
From Reflected XSS to Account Takeover — Showing XSS Impact | by A Bug’z Life | A Bug’z Life | Medium