Learn.Experiment.Secure.
Laboratorium interaktif untuk keamanan web. Lihat bagaimana login, izin akses, enkripsi, dan input tak tepercaya benar-benar bekerja, berdampingan dengan cara aman untuk membangunnya.
Setiap eksperimen adalah simulasi yang berjalan di browser Anda. Tidak ada yang menyentuh sistem nyata.
Sisi tak tepercaya
Input
GET /admin/reports
Masuk sebagai Viewer
Sisi tepercaya
Pemeriksaan
Bolehkah Viewer melihat laporan?
Hasil
403 Forbidden
Autentikasi sudah memastikan siapa Anda. Otorisasi memutuskan Anda tidak boleh melakukan ini.
Cara kerja lab
Setiap lab mengikuti empat langkah yang sama, jadi setelah menyelesaikan satu, lab berikutnya terasa akrab.
1Learn
Penjelasan singkat dengan bahasa sederhana, lengkap dengan istilah yang akan Anda temui di proyek nyata.
2Experiment
Ubah input, peran, atau kunci di simulasi yang aman, lalu amati apa yang dilakukan sistem.
3Compare
Letakkan pendekatan yang rentan di samping yang aman, dan lihat persis di mana perilakunya berbeda.
4Challenge
Selesaikan skenario terpandu dengan petunjuk dan umpan balik, dan coba lagi sesering yang Anda mau.
Tiga lab pertama
Setiap lab memadukan penjelasan singkat dengan eksperimen langsung yang bisa Anda selesaikan dalam beberapa menit.
Authentication & Authorization
TersediaIdentitas dan aksesPemulaSiapa Anda, dan apa yang boleh Anda lakukan? Ikuti request fiktif melewati login, session, dan pemeriksaan izin.
Yang bisa Anda coba
- Simulator login fiktif dengan akun buatan
- Validitas session yang bisa Anda periksa
- Session kedaluwarsa, dan akibatnya pada request berikutnya
- Matriks peran dan izin
Cryptography
TersediaKriptografiMenengahEncoding, hashing, dan enkripsi tampak mirip tetapi tugasnya sangat berbeda. Lihat masing-masing mengubah pesan yang sama.
Yang bisa Anda coba
- Encoding, hashing, dan enkripsi diterapkan pada input yang sama
- Demonstrasi SHA-256
- Enkripsi dan dekripsi AES-GCM
- Pembuatan kunci yang aman dengan Web Crypto API
XSS Prevention
TersediaInput dan outputPemulaInput tak tepercaya menjadi berbahaya saat diperlakukan sebagai kode. Bandingkan rendering yang tidak aman dan yang aman untuk teks yang sama.
Yang bisa Anda coba
- Demonstrasi input tak tepercaya
- Rendering yang rentan dan yang aman, berdampingan
- Output encoding yang aman
- Visualisasi cara browser me-render HTML
Sekilas katalog
Tiga lab yang bisa dipakai sekarang, masing-masing dengan tantangan terpandu yang hadir kemudian. Status menunjukkan dengan jelas apa yang sudah siap.
| Nama | Kategori | Tingkat | Status |
|---|---|---|---|
| LabAuthentication & Authorization | Tersedia | ||
| TantanganAccess Denied | Tersedia | ||
| LabCryptography | Tersedia | ||
| TantanganProtect the Secret | Tersedia | ||
| LabXSS Prevention | Tersedia | ||
| TantanganSafe Comment Box | Tersedia |
Baru mengenal keamanan? Mulai dari empat konsep
Lab-lab ini dibangun di atas beberapa konsep. Anda belum perlu menguasainya: setiap lab menjelaskannya lagi di bagian yang relevan.
- Trust boundary (batas kepercayaan)
- Garis tempat data dari pihak yang tidak sepenuhnya bisa dipercaya masuk ke sistem Anda. Setiap pemeriksaan di lab ini terjadi di sebuah boundary.
- Autentikasi dan otorisasi
- Autentikasi menanyakan siapa Anda. Otorisasi menanyakan apa yang boleh Anda lakukan. Respons 401 berarti yang pertama gagal; 403 berarti yang kedua.
- Encoding, hashing, dan enkripsi
- Encoding mengubah format dan siapa pun bisa membaliknya. Hashing bersifat satu arah. Enkripsi bisa dibalik, tetapi hanya dengan kunci.
- Input tak tepercaya
- Apa pun yang dikirim pengguna, browser, atau sistem lain. Perlakukan sebagai data, bukan kode, dan encode sesuai tempat data itu ditampilkan.
Rencana
Security Lab tumbuh lewat langkah kecil yang jujur. Setiap milestone menghadirkan sesuatu yang bisa dipakai.
M0
Fondasi
Design system, struktur katalog, rencana lab, dua bahasa, dan dua tema.
M1
Katalog
Katalog eksperimen lengkap dan navigasi antar-lab.
M2Milestone saat ini
Lab inti
Eksperimen interaktif untuk autentikasi, kriptografi, dan XSS.
M3
Tantangan
Tiga tantangan terpandu dengan petunjuk dan umpan balik.
M4
Progres dan ekosistem
Pelacakan penyelesaian, ringkasan progres, dan integrasi Gateway.
M5
Siap rilis
Aksesibilitas, validasi keamanan, pengujian responsif, dan persiapan peluncuran.
Ide untuk lab berikutnya
Belum dijadwalkan. Ide-ide ini menyusul setelah tiga lab pertama dan tantangannya matang.
Cross-site request forgery (CSRF)Ide
Mengapa browser yang sedang login bisa diperdaya untuk mengirim request, dan bagaimana cookie SameSite serta token membantu mencegahnya.
Content Security PolicyIde
Tulis sebuah policy, lalu lihat script, style, dan frame mana yang diizinkan atau diblokir.
CORS dalam praktikIde
Apa yang diperiksa browser sebelum membaca respons lintas origin, dan apa yang tidak dilindungi CORS.
Penyimpanan passwordIde
Salt, work factor, dan fungsi hashing lambat seperti PBKDF2, scrypt, dan Argon2.
Jebakan tokenIde
Token bertanda tangan, masa berlaku, pemeriksaan audience, dan kesalahan yang membuatnya tidak aman.
Aplikasi rentan terisolasiIde
Layanan yang benar-benar rentan, hanya di dalam lingkungan terisolasi yang terpisah. Tidak pernah di situs ini.
Tentang proyek ini
Security Lab adalah bagian dari FM Work, ekosistem proyek pribadi M Fikri Marzuki. Proyek ini berada di planet Labs pada Gateway, bersama eksperimen rekayasa lain yang bisa dicoba langsung.
Ketiga lab dan tantangan terpandunya kini sudah interaktif.
Aturan dasar
Simulasi, bukan nyata
Setiap demonstrasi adalah simulasi. Tidak ada sistem, akun, atau situs pihak ketiga yang dilibatkan.
Berjalan di browser Anda
Tanpa akun dan tanpa server. Eksperimen berjalan di perangkat Anda.
Tidak ada rahasia yang disimpan
Progres hanya disimpan di perangkat ini dan tidak pernah berisi password, token, atau kunci.
Markup tetap teks
Markup tak tepercaya ditampilkan sebagai teks dan tidak pernah dijalankan di halaman ini.