Panduan / Keamanan informasi

Memisahkan data pelanggan dalam aplikasi SaaS

Periksa batas antarorganisasi pelanggan pada API, database, cache, penyimpanan, antrean, ekspor, dan akses dukungan agar data tidak terbuka lintas pelanggan.

Di halaman ini

Identitas pelanggan harus diperiksa di server

Pada aplikasi multi-tenant, beberapa organisasi memakai layanan yang sama. Sistem perlu mengetahui organisasi mana yang boleh diakses oleh pengguna atau layanan pada setiap tindakan. Nilai pengenal pelanggan dari browser hanya merupakan pilihan yang diminta, bukan bukti hak akses.

Periksa identitas, keanggotaan, peran, dan kepemilikan objek di sisi server. Pengenal acak yang sulit ditebak tidak menggantikan pemeriksaan tersebut.

Batas data harus mengikuti seluruh alur

Jalur Hal yang sering terlupakan
Database Kueri, pencarian, dan agregasi harus mengikuti batas organisasi yang sah
Cache Kunci serta hasil tidak boleh tertukar antara pelanggan
Berkas Unggahan, pratinjau, tautan unduhan, dan ekspor memerlukan pemeriksaan akses
Antrean Pekerja memeriksa konteks tepercaya dan kewenangan saat menjalankan tugas
Dukungan/admin Akses lintas pelanggan harus khusus, dibatasi, disetujui sesuai kebutuhan, dan dicatat

Pemisahan dapat memakai arsitektur berbeda. Tidak semua sistem harus memiliki database terpisah, tetapi setiap jalur membutuhkan batas yang dapat ditegakkan dan diuji. Jika memakai kontrol tingkat baris, periksa peran database, koneksi yang digunakan ulang, dan jalur yang dapat melewati kontrolnya.

Uji dua organisasi dengan keadaan berbeda

Siapkan akun A dan B serta data uji masing-masing. Periksa daftar, detail, pencarian, perubahan, ekspor, dan berkas. Uji pula pengguna yang pindah organisasi, kehilangan peran, atau aksesnya dicabut ketika tugas masih berada dalam antrean.

Contoh fiktif: ekspor laporan dibuat setelah pengguna keluar dari organisasi. Pekerja tidak cukup mempercayai pengenal dalam pesan antrean; tindakan perlu mengikuti keputusan otorisasi yang sesuai saat dijalankan. Hasil tidak boleh tersedia melalui tautan publik tanpa batas.

Batasi dampak pada ketersediaan

Satu pelanggan juga dapat menghabiskan sumber daya bersama. Atur kuota atau batas yang relevan pada pekerjaan, koneksi, penyimpanan, dan permintaan. Pantau kegagalan lintas pelanggan tanpa memasukkan isi data pribadi ke log umum.

Simpan bukti pengujian

Gunakan matriks hak akses dan masukkan kasus penolakan ke pengujian regresi. Catat jalur yang belum diuji serta asumsi arsitektur. Temuan kebocoran memerlukan penanganan insiden, bukan hanya perubahan tampilan.

Panduan ini memperdalam keamanan API untuk SaaS; keberhasilan beberapa kasus uji tidak membuktikan seluruh aplikasi bebas kesalahan.

Pahami risiko di balik pemeriksaan

Baca Broken Access Control untuk memahami konsep dan contoh kegagalannya. Gunakan langkah di halaman ini untuk pekerjaan penerapan.

Unduh artikel (.md)

Sumber rujukan

  1. Multi-Tenant Security Cheat Sheet ↗OWASP Foundation; panduan teknis · Multi-Tenant Security: konteks tepercaya, database, cache, storage, antrean dan administrasi.
  2. Authorization Regression Testing Cheat Sheet ↗OWASP Foundation; panduan teknis · Pengujian otorisasi negatif dan regresi lintas tenant.

Baca naskah lengkap untuk melihat syarat dan pengecualiannya. Sesuaikan dengan layanan dan bidang usaha Anda.

Perlu membahas kebutuhan tim Anda?

Ceritakan sistem yang dikelola dan kebutuhan pengamanan tim Anda.

Konsultasikan kebutuhan Anda