Dashboard analisa log web server berbasis browser β tidak perlu instalasi, tidak perlu server, tidak perlu koneksi internet. Cukup buka file HTML dan upload log kamu.
LogScan adalah tools analisa log web server yang berjalan sepenuhnya di browser (client-side). Didesain untuk developer dan sysadmin yang ingin dengan cepat menganalisa log Apache/Nginx, memfilter request berdasarkan berbagai kriteria, serta mendeteksi pola serangan berdasarkan OWASP Top 10 2021 tanpa perlu menginstall tools tambahan atau mengirim data ke server manapun.
Upload satu file, format otomatis terdeteksi. Mendukung 5 format sekaligus:
| Format | Contoh Baris |
|---|---|
| Apache Access Log | 127.0.0.1 - - [10/Jun/2025:06:08:16 +0700] "GET /index.php HTTP/1.1" 200 512 "-" "Mozilla/5.0" |
| Apache Error Log | [Tue Jun 10 06:08:16.944880 2025] [php:error] [pid 1344:tid 404] [client 127.0.0.1:7286] PHP Fatal error: ... |
| Nginx Access Log | 127.0.0.1 - - [10/Jun/2025:06:08:16 +0700] "POST /login HTTP/1.1" 200 128 "-" "curl/7.88" |
| Nginx Error Log | 2025/06/10 06:08:16 [error] 1234#1234: *1 connect() failed... |
| Custom Format | Format log PHP kustom dengan blok --- separator |
Format XAMPP (Apache dengan
pid:tid) juga didukung penuh.
Deteksi dilakukan hanya pada body request (URL, GET params, POST params, Body) β bukan pada headers β untuk meminimalisir false positive.
| ID | Nama | Severity | Scope Scan |
|---|---|---|---|
| A03:2021 | SQL Injection | π΄ Critical | URL + Body |
| A03:2021 | Cross-Site Scripting (XSS) | π΄ Critical | URL + Body |
| A01:2021 | Path / Directory Traversal | π΄ Critical | URL + Body |
| A03:2021 | Command Injection | π΄ Critical | URL + Body |
| A05:2021 | XXE Injection | π΄ Critical | URL + Body |
| A10:2021 | Server-Side Request Forgery (SSRF) | π΄ Critical | URL + Body |
| A03:2021 | Server-Side Template Injection (SSTI) | π΄ Critical | URL + Body |
| A03:2021 | NoSQL Injection | π΄ Critical | URL + Body |
| A06:2021 | Security Scanner / Recon | π‘ Medium | User-Agent only |
| A05:2021 | Sensitive File Access | π‘ Medium | URL only |
| A07:2021 | Brute Force / Auth Endpoint | π‘ Medium | URL + POST combo |
- Filter Method: ALL / GET / POST / PUT / DELETE
- Filter Status: ALL / 2xx / 3xx / 4xx / 5xx
- Filter Threat: ALL / Critical / Medium
- Search Real-time: cari berdasarkan URL, IP, User-Agent, atau konten body
- Filter otomatis berubah untuk error log (menjadi Error/Crit, Warn/Notice, Info/Debug)
Menampilkan ringkasan setelah file diupload:
- Total request / entri
- Breakdown per method (GET, POST) atau per level error
- Jumlah response 2xx vs 4xx/5xx
- Total ancaman terdeteksi
- Badge format yang terdeteksi
Cukup buka file index.html di browser manapun
(Chrome, Firefox, Edge, Safari)
Klik area upload atau tombol "Pilih File .log", lalu pilih file log kamu. Bisa juga dengan drag & drop langsung ke area upload.
- Dashboard langsung menampilkan stats dan semua entri
- Badge format terdeteksi muncul di header
- Klik entri untuk expand detail lengkap
- Gunakan filter dan search untuk menyaring data
Entri yang terdeteksi ancaman ditandai dengan border berwarna:
- π΄ Border merah = ancaman Critical
- π‘ Border kuning = ancaman Medium
Klik entri untuk melihat detail ancaman: nama OWASP, deskripsi, dan string yang di-match.
logscan/
βββ log-analyzer.html β satu file, semua sudah di dalamnya
Tidak ada dependency eksternal selain Google Fonts (opsional, hanya untuk tampilan).
| Browser | Status |
|---|---|
| Chrome 90+ | β Full support |
| Firefox 88+ | β Full support |
| Edge 90+ | β Full support |
| Safari 14+ | β Full support |
| IE 11 | β Tidak didukung |
OS: Windows, Linux, macOS β tidak ada perbedaan karena berbasis browser.
Semua proses parsing dan analisa terjadi sepenuhnya di browser (client-side JavaScript). File log tidak pernah dikirim ke server manapun. Cocok untuk log yang bersifat sensitif atau internal.
Tidak perlu npm install, tidak perlu Python, tidak perlu Docker. Buka file HTML di browser, langsung jalan.
Setelah file didownload, tidak butuh koneksi internet sama sekali untuk menganalisa log. (Hanya Google Fonts yang membutuhkan internet, itupun hanya untuk tampilan font saja.)
Deteksi OWASP dirancang dengan scope yang ketat β headers HTTP tidak discan karena banyak mengandung karakter seperti ;, *, / yang bisa memicu false positive. Setiap pattern punya scope spesifik (body only, URL only, UA only, atau kombinasi).
Lima format log berbeda ditangani oleh satu file yang sama, dengan parser dan UI yang menyesuaikan otomatis.
Setiap entri bisa di-expand untuk melihat semua field: IP, UA, headers, payload, performance (untuk custom format), raw message error, dan breakdown ancaman yang detail.
Karena semua diproses di memori browser dengan vanilla JavaScript, file log yang sangat besar (lebih dari ~50MB atau lebih dari ~500.000 baris) bisa memperlambat browser atau menyebabkan tab tidak responsif. Disarankan memotong log terlebih dahulu untuk file berukuran besar.
Deteksi ancaman menggunakan regex statis, bukan analisa perilaku atau machine learning. Artinya:
- Serangan yang sangat ter-obfuscate mungkin tidak terdeteksi
- Pola baru yang belum ada di database tidak akan terdeteksi
- Bukan pengganti WAF (Web Application Firewall) atau SIEM yang proper
Saat ini tidak ada fitur export hasil analisa ke PDF, CSV, atau format lainnya. Hasil hanya bisa dilihat di browser.
Log harus diupload secara manual β tidak ada fitur tail/watch untuk memantau log secara live seperti tail -f.
Jika web server menggunakan format log kustom yang sangat berbeda dari Combined Log Format standar, parser mungkin tidak dapat membacanya dengan benar dan perlu modifikasi regex manual di source code.
Untuk Apache/Nginx Error Log, deteksi OWASP kurang efektif karena error log umumnya tidak mengandung payload request secara langsung. Lebih berguna untuk analisa error dan debugging daripada deteksi serangan.
Beberapa fitur yang bisa ditambahkan di versi mendatang:
- Export hasil ke CSV / PDF
- Pagination untuk file log besar
- Chart / visualisasi distribusi request per jam
- Web Worker untuk parsing background (tidak membekukan UI)
- Dukungan file
.gz(log terkompresi) - Custom regex pattern oleh user
- Simpan hasil analisa ke localStorage
Dashboard ini diputuskan menggunakan pure HTML + JavaScript karena:
- Parsing log dilakukan di client-side sehingga tidak perlu server
- File log tidak perlu dikirim ke manapun (privacy)
- Lebih portable β cukup satu file
.html
PHP akan relevan jika ada kebutuhan seperti parsing di server, penyimpanan hasil ke database, atau notifikasi email otomatis saat ancaman terdeteksi.
File Log Diupload
β
detectFormat() β identifikasi format dari 2000 karakter pertama
β
parser spesifik() β parseAccess / parseApacheError / parseNginxError / parseCustom
β
finalizeEntry()
β
detectThreats() β scan HANYA: URL + GET + POST + Body (bukan headers)
β
renderLogs() β tampilkan di UI dengan filter aktif
MIT License β bebas digunakan, dimodifikasi, dan didistribusikan.
Dibuat untuk kebutuhan analisa log lokal yang cepat, aman, dan tanpa ketergantungan eksternal.