Skip to main content

Access & Security

Dokumen ini merangkum kontrol akses route admin berdasarkan routes/admin.php.

Layer autentikasi

  1. Login session Laravel

    • Endpoint: /admin/login
    • Mekanisme: session/cookie (bukan X-Token API mobile)
  2. Email verification

    • Group route admin utama dibungkus middleware verified
  3. Google 2FA

    • Challenge endpoint:
      • GET /admin/google2fa
      • POST /admin/google2fa
    • Setelah lolos, route internal dibungkus middleware google2fa

Struktur middleware route

  • Public auth routes:
    • login/logout/reset password
  • Protected level 1:
    • Route::middleware(['auth', 'verified'])
  • Protected level 2 (functional pages):
    • Route::middleware(['google2fa'])

Artinya, mayoritas modul admin (users/exchanges/wallets/settings/report, dll.) baru bisa diakses setelah:

  • login berhasil
  • akun verified
  • challenge 2FA berhasil

Endpoint sensitif

Beberapa route perlu perhatian ekstra saat deployment:

  • /admin/debug-tz

    • endpoint debug database timezone
    • sebaiknya dinonaktifkan di production
  • /admin/test-notification/{type?}/{user_id?}

  • /admin/test-fcm

    • endpoint pengujian notifikasi internal
    • sebaiknya dibatasi permission/role yang ketat

Praktik hardening yang direkomendasikan

  • Batasi akses /admin via VPN, private network, atau IP allowlist.
  • Pastikan SESSION_SECURE_COOKIE=true dan HTTPS aktif.
  • Terapkan kebijakan password admin yang kuat + rotasi berkala.
  • Audit role/permission di modul setting secara periodik.
  • Monitor login log admin (setting/admin-login-log-history) untuk anomali.