flawopen.com/xss/Swift

● CWE-79 · Tinggi
Riset Keamanan · FlawOpen

Cross-Site Scripting in Swift

Learn how to fix Cross-Site Scripting (XSS) (CWE-79) in Swift. Side-by-side vulnerable vs secure code examples for Vapor Leaf template contextual escaping.

💡 Penjelasan Sederhana (ELI5)

Bayangkan menempelkan catatan pada papan pengumuman umum yang bertuliskan: 'Siapa pun yang membaca ini, serahkan dompet Anda kepada orang di sebelah Anda'. Jika setiap pengunjung secara buta mematuhi catatan tersebut, pelaku dapat mencuri uang semua orang.

Konsep Kunci & Istilah

Web Application Security
Komponen arsitektur utama yang terpengaruh oleh CWE-79.
CWE-79
Klasifikasi standar Common Weakness Enumeration (CWE) untuk xss-swift.
Defense-in-Depth
Verifikasi rekayasa berlapis dan isolasi batas waktu proses (runtime).

Alur Serangan Langkah demi Langkah

Step 1

Penyuntikan Payload Skrip Berbahaya

Penyerang menyisipkan tag HTML atau kode JavaScript (misal: <script> atau <img onerror=...>) ke dalam formulir atau URL.

Step 2

Penyajian DOM Tanpa Pelolosan (Escape)

Aplikasi menampilkan input langsung ke halaman HTML tanpa pengkodean entitas HTML sesuai konteks.

Step 3

Parsing & Eksekusi DOM di Peramban Korban

Saat korban mengunjungi halaman, browser menafsirkan karakter yang disuntikkan sebagai kode yang dapat dieksekusi.

Step 4

Pembajakan Sesi & Pencurian Token Akses

Skrip berjalan dalam konteks kredensial korban, mencuri cookie autentikasi dan token penyimpanan lokal.

Kode Sumber: Rentan vs Aman

✕ IMPLEMENTASI RENTAN
// untrusted HTML loaded with no sanitization
webView.loadHTMLString(
  untrustedHtml, baseURL: nil
)
✓ PERBAIKAN AMAN & KUAT
// sanitize before loading
let safeHtml = sanitize(untrustedHtml)
webView.loadHTMLString(
  safeHtml, baseURL: nil
)

Daftar Periksa Penguatan Sistem Rekayasa

References