Skip to content

[SECURITY] Nonaktifkan Debug Mode di Production dan Matikan Logging Query Sensitif #955

@vickyrolanda

Description

@vickyrolanda

Masalah

APP_DEBUG yang aktif di production dapat membuka stack trace, variabel lingkungan sensitif, struktur aplikasi, dan query SQL ke publik. Selain itu, logging SQL query di app/Providers/AppServiceProvider.php, ketika debug ON, dapat membocorkan data kredensial dan query ke file log. Kedua hal ini sangat beresiko jika dibiarkan pada environment produksi.

Dampak

  • Attacker bisa memahami struktur, menjalankan reverse engineering sistem, hingga membantu eksploitasi bug lain (RCE, SQLi, dsb).
  • Parameter DB atau API secret bisa terekspos di log atau error page.

Langkah Penyelesaian

  1. Pastikan .env production selalu menggunakan APP_DEBUG=false dan APP_ENV=production.
  2. Pada AppServiceProvider, modifikasi agar logging SQL query tidak pernah aktif di production environment.
  3. Implementasikan error handler yang generik untuk semua error di production (tanpa stacktrace/detail path).

Contoh Perbaikan

// app/Providers/AppServiceProvider.php
default:
if (config('app.debug') && app()->environment() !== 'production') {
   // SQL log hanya di dev/staging
   DB::listen(function ($query) { ... });
}
// .env.production
APP_ENV=production
APP_DEBUG=false

Setelah Perbaikan

  • Tes manual: Trigger error di production, pastikan error message tetap generic.
  • Jalankan automated test untuk regresi logging/exception.

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions