OWASP Juice Shop menjadi salah satu media yang menarik untuk mempelajari keamanan web secara langsung. Melalui aplikasi yang memang dirancang untuk pembelajaran keamanan, kita dapat melihat bagaimana authentication, authorization, API, dan pengelolaan data saling berhubungan dalam sebuah sistem web. Bayangkan kamu sedang menggunakan sebuah website. Kamu login menggunakan email dan password, melihat profil, melakukan transaksi, lalu keluar dari akun. Dari sisi pengguna, semuanya terlihat normal. Namun, pernahkah kamu berpikir apa yang sebenarnya terjadi di balik layar? Di balik halaman yang terlihat sederhana tersebut terdapat server, database, sistem autentikasi, pengaturan hak akses, dan berbagai proses yang bekerja untuk mengelola informasi pengguna. Nama, email, password, alamat, hingga riwayat transaksi dapat menjadi bagian dari data yang diproses oleh sistem. Masalahnya, data yang tersimpan di dalam sebuah sistem tidak otomatis aman hanya karena berada di dalam database. Jika aplikasi yang mengakses database memiliki kelemahan, keamanan data juga dapat ikut terancam.
Sebuah website bisa memiliki tampilan yang modern, login yang terlihat aman, dan database yang besar. Namun, apakah itu berarti data di dalamnya benar-benar aman?
Pertanyaan tersebut menjadi salah satu alasan mengapa Cyber Security tidak hanya membahas serangan terhadap komputer atau jaringan. Perlindungan terhadap keamanan data juga menjadi bagian penting dalam membangun sistem digital yang dapat dipercaya.
Data Bukan Sekadar Angka dan Teks
Dalam kehidupan sehari-hari, kita menghasilkan data hampir tanpa menyadarinya. Ketika membuat akun media sosial, berbelanja melalui marketplace, mengisi formulir sekolah, mengakses layanan perbankan, atau menggunakan aplikasi tertentu, berbagai informasi akan diproses oleh sistem.
| Aktivitas | Contoh Data | Risiko Jika Tidak Dilindungi |
|---|---|---|
| Membuat akun | Nama, email, password | Pengambilalihan akun |
| Belanja online | Alamat, transaksi | Penyalahgunaan informasi |
| Sistem sekolah | Data siswa, nilai | Akses tanpa izin |
| Aplikasi perusahaan | Data pelanggan | Kebocoran informasi |
Semakin banyak informasi yang diproses oleh sistem, semakin penting pula penerapan keamanan data. Perlindungan tersebut tidak cukup dilakukan pada satu bagian saja karena data melewati beberapa komponen sebelum akhirnya digunakan oleh pengguna.
Kalau Sudah Ada Login, Apakah Data Otomatis Aman?
Jawabannya: belum tentu.
Login memang menjadi salah satu lapisan keamanan yang penting, tetapi sistem tidak berhenti setelah pengguna berhasil memasukkan username dan password. Setelah proses login berhasil, sistem masih harus menentukan informasi apa yang boleh diakses dan tindakan apa yang boleh dilakukan. Misalnya terdapat dua jenis pengguna dalam sebuah aplikasi: pelanggan dan administrator. Keduanya dapat melakukan login, tetapi bukan berarti keduanya memiliki hak akses yang sama.
“Siapa kamu?”
Authorization / Access Control
“Apa yang boleh kamu akses?”
Perbedaan tersebut terlihat sederhana, tetapi memiliki hubungan langsung dengan keamanan data. Sistem yang hanya memeriksa identitas tanpa mengatur hak akses dapat memberikan peluang bagi pengguna untuk melihat informasi yang seharusnya bukan miliknya.
Kenapa Memilih OWASP Juice Shop?
Untuk memahami masalah tersebut secara langsung, tentu tidak tepat jika kita mencoba mencari kelemahan pada website milik orang lain. Selain berisiko mengganggu sistem, pengujian tanpa izin juga bukan cara yang tepat untuk belajar Cyber Security.
Karena itu, diperlukan lingkungan yang memang dibuat untuk pembelajaran. Salah satu yang dapat digunakan adalah OWASP Juice Shop. OWASP Juice Shop merupakan aplikasi web yang sengaja dibuat memiliki berbagai kerentanan untuk kebutuhan security training dan pembelajaran keamanan aplikasi. Aplikasi ini menyediakan banyak challenge yang memungkinkan pengguna mempelajari berbagai konsep keamanan web dalam lingkungan yang terkontrol.
Juice Shop juga dapat dijalankan secara lokal. Dengan demikian, praktik dilakukan terhadap aplikasi yang berjalan pada lingkungan sendiri, bukan terhadap sistem publik. nformasi dan dokumentasi proyek dapat dilihat melalui website resmi OWASP Juice Shop.
- Dibuat khusus untuk pembelajaran keamanan aplikasi.
- Memiliki berbagai challenge keamanan.
- Dapat dijalankan pada lingkungan lokal.
- Cocok untuk memahami hubungan aplikasi dengan keamanan data.
- Tidak perlu menguji website milik pihak lain.
Menyiapkan Lingkungan Praktik di Debian 13
Pada praktik ini, OWASP Juice Shop dijalankan secara lokal menggunakan Debian 13. Berbeda dari penggunaan Docker, Juice Shop pada praktik ini dijalankan langsung menggunakan Node.js dan npm. Sebelum masuk ke proses instalasi, package pada Debian diperbarui terlebih dahulu. Selain itu, package pendukung juga disiapkan agar proses instalasi dapat berjalan dengan baik.
apt install python3-setuptools


Perintah tersebut digunakan untuk memperbarui daftar package dan memasang package pendukung yang dibutuhkan dalam proses instalasi Juice Shop.
Memasang Dependency Juice Shop
Setelah environment siap, langkah berikutnya adalah memasang seluruh dependency yang dibutuhkan oleh Juice Shop. Proses tersebut dilakukan menggunakan npm.

Proses instalasi berhasil dilakukan. Selama proses berlangsung terdapat beberapa pesan deprecated. Pesan tersebut merupakan warning dari dependency tertentu dan tidak menghentikan proses instalasi.
Pesan deprecated tidak selalu berarti instalasi gagal. Yang perlu diperhatikan adalah apakah proses instalasi berhenti karena error atau tetap selesai dengan berhasil.
Menjalankan OWASP Juice Shop
Setelah seluruh dependency selesai dipasang, Juice Shop dapat dijalankan menggunakan perintah npm start.

Pada percobaan awal, aplikasi berjalan menggunakan port 3000. Untuk kebutuhan praktik, port kemudian diubah menjadi 3001.
Setelah perintah tersebut dijalankan, Juice Shop berhasil aktif pada port 3001 dan dapat diakses melalui browser. Pada tahap ini, aplikasi sudah siap digunakan sebagai lingkungan pembelajaran keamanan web.

Gambar 1. OWASP Juice Shop yang berhasil dijalankan pada Debian 13.
Dari Tampilan Website ke Risiko di Balik Layar
Ketika membuka Juice Shop, pengguna mungkin hanya melihat sebuah website dengan berbagai menu dan fitur. Namun, jika dilihat dari sudut pandang Cyber Security, terdapat banyak hal yang dapat dipelajari. Setiap kali pengguna melakukan login, mengirimkan data, membuka halaman tertentu, atau melakukan transaksi, aplikasi harus memproses berbagai informasi.
Alurnya dapat digambarkan secara sederhana:
Setiap bagian dalam alur tersebut membutuhkan perlindungan. Jika aplikasi memiliki kelemahan, masalah tersebut dapat memengaruhi data yang diproses oleh sistem.
Authentication: Lapisan Awal dalam Keamanan
Authentication menjadi salah satu konsep penting dalam keamanan aplikasi web. Authentication digunakan untuk memastikan identitas pengguna sebelum sistem memberikan akses. Dalam aplikasi nyata, proses authentication berkaitan dengan username, email, password, session, token, dan berbagai mekanisme lainnya. Pada Juice Shop, authentication juga menjadi bagian dari berbagai challenge yang tersedia pada Score Board. Salah satu challenge yang dapat digunakan untuk mempelajari konsep ini adalah challenge yang berkaitan dengan proses login.
Authentication memastikan bahwa sistem mengenali pengguna yang sedang mengakses aplikasi. Namun, keberhasilan login belum menjamin bahwa pengguna tersebut dapat mengakses seluruh data.
Karena itu, authentication perlu dilengkapi dengan mekanisme authorization atau access control.
Access Control: Ketika Data Tidak Seharusnya Bisa Diakses Semua Pengguna
Bagian ini menjadi salah satu pengujian yang menarik karena berhubungan langsung dengan data pengguna. Dalam aplikasi belanja, misalnya, setiap pengguna seharusnya hanya dapat melihat basket miliknya sendiri. Jika seorang pengguna memiliki basket dengan ID tertentu, aplikasi seharusnya melakukan pemeriksaan sebelum memberikan data basket tersebut. Pada praktik ini, pengujian dilakukan menggunakan challenge View Basket yang berkaitan dengan konsep Broken Access Control.
Mau Kuasai Mengenal dan Menguji Keamanan Web dengan OWASP Juice Shop Sampai Bisa Praktik Langsung?
Materi ini juga kami ajarkan langsung di kelas Edusoft Center, dibimbing mentor, sampai kamu bisa praktik nyata — bukan cuma baca teori.
Tanya Kursus via WhatsApp Lihat contoh project nyata dari siswa kami →
Menemukan Basket ID
Langkah awal pengujian adalah melihat informasi basket yang digunakan oleh akun. Dari proses pemeriksaan yang dilakukan, ditemukan nilai bid sebesar:
Nilai tersebut menunjukkan ID basket yang berkaitan dengan akun yang sedang digunakan.
Menguji Endpoint Basket
Selanjutnya dilakukan pengujian terhadap endpoint basket dengan ID yang berbeda:
Pada awal pengujian, request tanpa token authentication menghasilkan respons:
No Authorization header was found
Respons tersebut menunjukkan bahwa endpoint membutuhkan authentication. Pengujian kemudian dilakukan dengan menyertakan token yang diperoleh setelah login.
Setelah token disertakan, endpoint tersebut memberikan respons yang berisi data basket dengan ID 5.

Gambar 2. Hasil pengujian endpoint /rest/ basket/5 ID menggunakan token authentication.
Respons tersebut menjadi bagian penting dari pengujian karena akun yang digunakan memiliki bid 6, tetapi request dapat memperoleh data basket dengan ID 5. Dengan kata lain, authentication berhasil mengenali pengguna, tetapi pemeriksaan terhadap hak akses objek yang diminta perlu diperhatikan lebih lanjut.
Apa yang Menjadi Masalah?
Masalah pada pengujian ini bukan terletak pada proses login. Pengguna memang berhasil melakukan authentication dan memiliki token yang valid. Yang menjadi perhatian adalah bagaimana server memeriksa hubungan antara pengguna yang sedang login dengan objek yang diminta. Sistem seharusnya tidak hanya bertanya:
Tetapi juga:
Jika pemeriksaan tersebut tidak dilakukan dengan benar, pengguna dapat memperoleh informasi dari objek yang seharusnya tidak menjadi haknya. Kondisi seperti ini berkaitan dengan Broken Access Control dan dapat menjadi contoh masalah Broken Object Level Authorization (BOLA).
Authentication vs Access Control
| Aspek | Pertanyaan | Tujuan |
|---|---|---|
| Authentication | Siapa kamu? | Memastikan identitas pengguna |
| Access Control | Apa yang boleh kamu akses? | Membatasi akses berdasarkan hak pengguna |
Pengujian View Basket menunjukkan mengapa kedua konsep tersebut harus berjalan bersama. Authentication yang berhasil tidak otomatis berarti authorization sudah aman. Token memang dapat membuktikan bahwa pengguna telah login, tetapi server tetap perlu memastikan bahwa objek yang diminta memang boleh diakses oleh pengguna tersebut.
Apa Dampaknya terhadap Keamanan Data?
Jika kelemahan seperti ini terjadi pada aplikasi nyata, dampaknya dapat menjadi lebih serius. Data dalam basket mungkin terlihat sederhana, tetapi tetap merupakan informasi yang diproses oleh sistem. Jika pola kelemahan yang sama terdapat pada endpoint lain, objek yang dapat diakses tanpa izin mungkin bukan hanya basket. Data yang berpotensi terdampak dapat mencakup informasi transaksi, profil pengguna, atau informasi pribadi lainnya.
- Melihat data pengguna lain.
- Mengetahui informasi transaksi.
- Mengakses informasi yang seharusnya bersifat pribadi.
- Memanfaatkan informasi untuk serangan lanjutan.
Karena itu, access control harus diterapkan pada setiap objek dan setiap request yang membutuhkan pembatasan akses.
Jadi, Apa yang Sebenarnya Kita Pelajari?
Praktik menggunakan Juice Shop bukan sekadar menyelesaikan challenge dan mendapatkan tanda keberhasilan. Hal yang lebih penting adalah memahami mengapa sebuah kerentanan dapat terjadi.
Dari authentication, kita belajar bahwa identitas pengguna perlu diverifikasi dengan benar. Dari pengujian View Basket, kita belajar bahwa keberhasilan login saja belum cukup. Sistem juga harus memastikan bahwa pengguna hanya dapat mengakses objek yang memang menjadi haknya.
Pengujian sederhana terhadap bid 6 dan endpoint /rest/basket/5 memberikan gambaran bagaimana kelemahan pada access control dapat berhubungan langsung dengan keamanan data.
Keamanan Tidak Berhenti di Halaman Login
Pengujian ini menunjukkan satu hal penting: keamanan aplikasi tidak berhenti pada halaman login.
Sebuah aplikasi dapat memiliki authentication yang berjalan dengan baik, tetapi masih memiliki kelemahan jika authorization atau access control tidak diterapkan secara tepat. Karena itu, keamanan perlu dipikirkan dari berbagai sisi, mulai dari aplikasi, server, database, hingga pengaturan hak akses.
Berhasil login bukan berarti pengguna boleh mengakses semua data. Setiap request tetap perlu diperiksa berdasarkan identitas, kepemilikan objek, dan hak akses pengguna.
Bagaimana Perlindungan Data Diterapkan di Dunia Nyata?
Konsep yang dipelajari dari Juice Shop sebenarnya tidak berhenti pada aplikasi latihan. Prinsip yang sama dapat ditemukan pada berbagai layanan digital.
| Lingkungan | Contoh Perlindungan |
|---|---|
| Website | Authentication dan session security |
| Database | User privilege dan access control |
| Server | Permission dan konfigurasi keamanan |
| Jaringan | Firewall dan komunikasi terenkripsi |
| Cloud | Access control dan monitoring |
Artinya, keamanan data bukan hanya tanggung jawab satu orang. Developer, administrator server, database administrator, bahkan pengguna memiliki peran masing-masing dalam menjaga informasi tetap aman.
Kesimpulan
Perkembangan teknologi membuat data semakin bernilai. Hampir setiap layanan digital memproses informasi pengguna, sehingga perlindungan terhadap informasi tersebut menjadi bagian yang tidak dapat dipisahkan dari Cyber Security. Melalui OWASP Juice Shop, konsep keamanan aplikasi dapat dipelajari secara langsung melalui lingkungan yang memang dibuat untuk pembelajaran. Pada praktik ini, Juice Shop berhasil dijalankan pada Debian 13 menggunakan Node.js dan npm, kemudian digunakan untuk melakukan pengujian terhadap mekanisme access control. Pengujian View Basket menunjukkan bahwa authentication dan access control merupakan dua hal yang berbeda tetapi saling berkaitan. Pengguna dapat memiliki token yang valid, tetapi server tetap harus memastikan bahwa objek yang diminta memang menjadi hak pengguna tersebut. Yang paling penting dari praktik ini bukan sekadar menjalankan aplikasi atau menemukan sebuah challenge. Kita belajar melihat hubungan antara request, token, endpoint, hak akses, dan data. Pada akhirnya, keamanan data membutuhkan pendekatan berlapis. Semakin banyak data yang diproses oleh sebuah layanan digital, semakin penting pula penerapan authentication dan access control yang tepat sejak awal.
Cyber Security bukan hanya tentang mencari celah pada sistem. Memahami bagaimana celah tersebut bekerja membantu kita memahami cara membangun sistem yang lebih aman. Authentication memastikan siapa pengguna, sedangkan Access Control memastikan apa yang boleh diakses pengguna.
Mau Kuasai Mengenal dan Menguji Keamanan Web dengan OWASP Juice Shop Sampai Bisa Praktik Langsung?
Materi ini juga kami ajarkan langsung di kelas Edusoft Center, dibimbing mentor, sampai kamu bisa praktik nyata — bukan cuma baca teori.
Tanya Kursus via WhatsApp Lihat contoh project nyata dari siswa kami →
