NoSQL Injection
NoSQL Injection merupakan kerentanan yang memungkinkan penyerang mengganggu query yang dibuataplikasi ke database NoSQL
NoSQL ini dapat memungkinkan penyerang untuk:
Bypass authentication atau protection mechanism
Extract atau edit data
Menyebabkan Denial of Service
Eksekusi code pada server
NoSQL database menyimpan dan mengambil data dalam format selain tabel relasional SQL tradisional. Database ini menggunakan berbagai bahasa query, bukan standar universal seperti SQL, dan memiliki lebih sedikit kendala relasional.
Terdapat 2 jenis NoSQL injection yang berbeda:
Syntax injection Hal ini terjadi ketika penyerang dapat merusak syntax query NoSQL, yang memungkinkan penyerang menginjeksi payload sendiri. Metodologinya mirip dengan yang digunakan dalam SQL injection. Namun, sifat serangannya sangat bervariasi, karena daabase NoSQL menggunakan berbagai bahasa query, jenis syntaxt query dan struktur data yang berbeda.
Operator injection Hal ini terjadi ketika penyerang dapat menggunakan operator query NoSQL untuk memanipulasi query.
Cara mencegah NoSQL injection?
Cara yang tepat untuk mencegah serangan NoSQL injection bergantung pada teknologi NoSQL yang digunakan. Karena itu, disarankan untuk membaca dokumentasi keamanan untuk database NoSQL yang dipilih. Meskipun demikian, panduan umum berikut juga dapat membantu:
Sanitasi dan validasi inputan pengguna, menggunakan allowlist karakter yang diterima
Masukkan inputan pengguna menggunakan query yang diberi parameter, dan bukan menggabungkan inputan pengguna secara langsung kedalam query
Untuk mencegah operator injection, terapakan whitelist keys yang diterima
Last updated