# Hasil pengujian — Jam Masjid.OS Tahap 1

Tanggal: 19 Oktober 2026 (Asia/Jakarta).

Lingkungan: Windows, PHP 8.4.26 CLI dengan PDO MySQL, MariaDB 11.4.8 lokal, server HTTP bawaan PHP, Microsoft Edge headless melalui Playwright. Semua database dan akun uji terpisah dari paket produksi.

## Hasil

Semua pemeriksaan sintaks PHP lulus. **38 pemeriksaan HTTP/database lulus**, ditambah uji browser login dan penyimpanan form. Screenshot desktop 1440×1000 dan ponsel 390×844 diperiksa secara visual; tidak ditemukan overflow pada lebar halaman ponsel. Tabel memakai area scroll tersendiri untuk kolom tambahan.

- LULUS: Anonymous redirected to login
- LULUS: Installer CSRF rejected
- LULUS: Installer token rejected
- LULUS: Installer success
- LULUS: Installer locked
- LULUS: Wrong login rejected
- LULUS: Super admin login and dashboard
- LULUS: Session rotated at login
- LULUS: Invalid mosque input rejected
- LULUS: Create Masjid A
- LULUS: Create Masjid B
- LULUS: Edit and escaped output
- LULUS: Search filters result
- LULUS: Create mosque admin
- LULUS: Duplicate email rejected
- LULUS: Assigned mosque deletion restricted
- LULUS: Mosque admin login
- LULUS: Tenant list isolation
- LULUS: Tenant edit IDOR rejected
- LULUS: Tenant POST IDOR rejected
- LULUS: Tenant own edit permitted
- LULUS: Role denied create
- LULUS: Role denied users
- LULUS: Role denied delete&id=1
- LULUS: Mutating request without CSRF denied
- LULUS: GET logout rejected
- LULUS: Password change logs out
- LULUS: New password login
- LULUS: POST logout success
- LULUS: Logged-out dashboard denied
- LULUS: SQL injection search treated as text
- LULUS: Delete mosque admin
- LULUS: Deleted account session denied
- LULUS: Delete mosque 1
- LULUS: Delete mosque 2
- LULUS: Security headers
- LULUS: Stored password hashed and migration recorded
- LULUS: Login rate limit

## Batas verifikasi

- Belum deploy dan belum diuji pada akun cPanel/domain produksi; tidak ada akses cPanel yang digunakan.
- PHP 8.2/8.3 dan MySQL 8 belum dijalankan langsung; implementasi ditujukan untuk versi tersebut, pengujian database dilakukan pada MariaDB 11.4.
- TLS, redirect HTTPS, izin file, pewarisan .htaccess Apache/LiteSpeed, dan privasi folder di hosting harus diperiksa memakai checklist README. Built-in server PHP tidak menerapkan .htaccess.
- Pengujian ini memverifikasi alur utama dan kontrol akses; bukan audit penetrasi lengkap, uji beban, atau sertifikasi keamanan.
- Timeout sesi dikaji dari kode, belum diuji dengan menunggu 30 menit/8 jam. Paginasi tersedia tetapi belum diuji dengan dataset besar.

## Perbaikan dari hasil uji

Pengujian awal mendeteksi waktu mulai sesi anonim belum diinisialisasi, sehingga token CSRF berganti sebelum login. Sudah diperbaiki dan seluruh pengujian di atas dijalankan ulang dengan hasil lulus.

Screenshot ada di docs/. Paket tidak memuat config.php produksi, token instalasi aktif, password uji, database uji, runtime PHP/MariaDB, atau file session/lock terpasang.
