Skip to content

CRITICAL SECURITY FIXES - Refactor File Upload Controllers#1441

Merged
vickyrolanda merged 5 commits intodevfrom
dev-1434
Feb 8, 2026
Merged

CRITICAL SECURITY FIXES - Refactor File Upload Controllers#1441
vickyrolanda merged 5 commits intodevfrom
dev-1434

Conversation

@pandigresik
Copy link
Contributor

Deskripsi

1. CRITICAL SECURITY FIXES - Refactor File Upload Controllers (ca8c413)

  • Memperbarui 18 file controller untuk menggunakan FileUploadService daripada metode upload langsung
  • File yang dimodifikasi:
    • app/Http/Controllers/Api/PembangunanController.php
    • app/Http/Controllers/Api/PendudukController.php
    • app/Http/Controllers/Api/ProgamBantuanController.php
    • app/Http/Controllers/Api/SuratController.php
    • app/Http/Controllers/BackEnd/ThemesController.php
    • app/Http/Controllers/Data/AdminKomplainController.php
    • app/Http/Controllers/Data/ArsipController.php
    • app/Http/Controllers/Data/LaporanApbdesController.php
    • app/Http/Controllers/Data/LaporanPendudukController.php
    • app/Http/Controllers/Data/PendudukController.php
    • app/Http/Controllers/Data/ProfilController.php
    • app/Http/Controllers/Data/ProgramBantuanController.php
    • app/Http/Controllers/FrontEnd/SistemKomplainController.php
    • app/Http/Controllers/Setting/PengaturanDatabaseController.php
    • app/Http/Controllers/Surat/PermohonanController.php
    • app/Repositories/KomplainApiRepository.php
    • app/Services/FileUploadService.php
    • tests/Feature/Security/FileUploadSecurityTest.php

2. CRITICAL SECURITY FIXES - Buat FileUploadService (6f5adc2)

  • Menambahkan layanan baru FileUploadService untuk menangani upload file secara aman
  • Menambahkan aturan validasi SecureFileUpload untuk memfilter file berbahaya
  • Menambahkan test unit untuk FileUploadService

Perubahan Spesifik

FileUploadService

Layanan ini menyediakan fitur keamanan berikut:

  • Validasi tipe MIME file
  • Validasi ukuran file
  • Pembuatan nama file yang aman (menghindari path traversal)
  • Filter ekstensi berbahaya seperti PHP, exe, dll
  • Mendukung upload multiple files
  • Fungsi delete file yang aman

Penggunaan di Controller

  • Semua controller yang sebelumnya menggunakan $file->storeAs() langsung digantikan dengan FileUploadService
  • Contoh implementasi:
$fileUploadService = new \App\Services\FileUploadService();
$allowedMimes = \App\Services\FileUploadService::getAllowedMimes('image');
$path = $fileUploadService->uploadSecure($file, 'directory/', $allowedMimes);

Aturan Validasi Aman

  • Ditambahkan SecureFileUpload rule untuk validasi upload file
  • Memvalidasi jenis file, ukuran, dan ekstensi berbahaya
  • Mendukung konfigurasi MIME types dan ukuran maksimum

Pengujian Keamanan

  • Ditambahkan FileUploadSecurityTest.php untuk menguji serangan upload file
  • Ditambahkan FileUploadServiceTest.php untuk menguji fungsi layanan
  • Menguji berbagai skenario keamanan termasuk path traversal dan file berbahaya

Tujuan Perubahan

Perubahan ini bertujuan untuk:

  1. Mencegah serangan upload file yang dapat menyebabkan eksekusi kode sembarang
  2. Meningkatkan keamanan aplikasi dengan validasi mendalam terhadap file yang di-upload
  3. Mencegah serangan path traversal dan eksploitasi direktori

Dampak

  • Meningkatkan keamanan keseluruhan aplikasi
  • Mengurangi kerentanan terhadap serangan upload file
  • Memastikan hanya file yang sah dan aman yang dapat di-upload

Masalah Terkait (Related Issue)

Langkah untuk mereproduksi (Steps to Reproduce)

Daftar Periksa (Checklist)

Tangkapan Layar (Screenshot)

image

@pandigresik pandigresik changed the title Dev 1434 CRITICAL SECURITY FIXES - Refactor File Upload Controllers Feb 5, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants