Langsung ke konten
Security Lab

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.

Trust boundary (batas kepercayaan)Sebuah ilustrasi. Buka sebuah lab untuk mencoba eksperimen sungguhannya.

Cara kerja lab

Setiap lab mengikuti empat langkah yang sama, jadi setelah menyelesaikan satu, lab berikutnya terasa akrab.

  1. 1Learn

    Penjelasan singkat dengan bahasa sederhana, lengkap dengan istilah yang akan Anda temui di proyek nyata.

  2. 2Experiment

    Ubah input, peran, atau kunci di simulasi yang aman, lalu amati apa yang dilakukan sistem.

  3. 3Compare

    Letakkan pendekatan yang rentan di samping yang aman, dan lihat persis di mana perilakunya berbeda.

  4. 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 aksesPemula

    Siapa 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
    Buka lab Authentication & Authorization
  • Cryptography

    TersediaKriptografiMenengah

    Encoding, 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
    Buka lab Cryptography
  • XSS Prevention

    TersediaInput dan outputPemula

    Input 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
    Buka lab XSS Prevention

Sekilas katalog

Tiga lab yang bisa dipakai sekarang, masing-masing dengan tantangan terpandu yang hadir kemudian. Status menunjukkan dengan jelas apa yang sudah siap.

Lab dan tantangan terpandu beserta kategori, tingkat, dan statusnya
NamaStatus
LabAuthentication & AuthorizationTersedia
TantanganAccess DeniedTersedia
LabCryptographyTersedia
TantanganProtect the SecretTersedia
LabXSS PreventionTersedia
TantanganSafe Comment BoxTersedia

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.

  1. M0

    Fondasi

    Design system, struktur katalog, rencana lab, dua bahasa, dan dua tema.

  2. M1

    Katalog

    Katalog eksperimen lengkap dan navigasi antar-lab.

  3. M2Milestone saat ini

    Lab inti

    Eksperimen interaktif untuk autentikasi, kriptografi, dan XSS.

  4. M3

    Tantangan

    Tiga tantangan terpandu dengan petunjuk dan umpan balik.

  5. M4

    Progres dan ekosistem

    Pelacakan penyelesaian, ringkasan progres, dan integrasi Gateway.

  6. 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.