Skip to content

ICWR-TEAM/BF_Logger

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

6 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

🧠 PHP Login Attempt Logger

Sebuah sistem pencatat percobaan login (login attempt logger) berbasis PHP + MySQL yang mencatat setiap percobaan login (berhasil maupun gagal), menampilkan log dengan tampilan DataTables, dan menyediakan statistik seperti Top IP, Top Username, serta jumlah login sukses/gagal.


πŸš€ Fitur Utama

βœ… Mencatat setiap percobaan login ke database
βœ… Menampilkan riwayat login dengan tampilan DataTables (interaktif & pencarian cepat)
βœ… Menampilkan statistik login (total, sukses, gagal, top IP, top username)
βœ… Dapat mengaktifkan fitur pemblokiran otomatis berdasarkan percobaan gagal berulang
βœ… Mudah diintegrasikan ke sistem login apapun
βœ… Menggunakan PDO (secure & prepared statement)


πŸ“‚ Struktur Direktori

bf_logger/
β”œβ”€β”€ checker.php        # Class utama (logger) -> FILE CORE
β”œβ”€β”€ config.php         # Konfigurasi database & pengaturan logger
β”œβ”€β”€ login.php          # Contoh form login (demo) -> BISA DI SESUAIKAN
β”œβ”€β”€ log.php            # Halaman untuk menampilkan log (DataTables) -> BISA DISESUAIKAN DENGAN PEMANGGILAN FUNGSI DIBAWAH INI
β”œβ”€β”€ stats.php          # Halaman untuk menampilkan statistik login -> BISA DISESUAIKAN DENGAN PEMANGGILAN FUNGSI DIBAWAH INI
└── README.md          # Dokumentasi proyek (file ini)

🧰 Persyaratan

  • PHP 8.0 atau lebih baru
  • MySQL / MariaDB
  • Ekstensi PDO aktif
  • Server web (Apache / Nginx / XAMPP / Laragon, dll)

βš™οΈ Instalasi

  1. Clone repository
git clone https://github.com/username/bf_logger.git
cd bf_logger
  1. Import Database dengan Query dibawah ini
CREATE DATABASE IF NOT EXISTS bf_logger CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
USE bf_logger;

CREATE TABLE IF NOT EXISTS login_attempts (
  id INT AUTO_INCREMENT PRIMARY KEY,
  ip VARCHAR(45) NOT NULL,
  username VARCHAR(255) DEFAULT NULL,
  user_agent VARCHAR(512) DEFAULT NULL,
  success TINYINT(1) NOT NULL DEFAULT 0,
  created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
  INDEX idx_ip_created_at (ip, created_at),
  INDEX idx_username_created_at (username, created_at)
);
  1. Edit file konfigurasi Buka config.php dan sesuaikan pengaturan berikut:
'db' => [
    'dsn'  => 'mysql:host=localhost;dbname=bf_logger;charset=utf8mb4',
    'user' => 'root',       // ubah sesuai user MySQL
    'pass' => '',           // ubah sesuai password MySQL
],
  1. Jalankan di browser
  • Buka login.php β†’ untuk mencoba login demo

  • Buka log.php β†’ untuk melihat semua log

  • Buka stats.php β†’ untuk melihat statistik login


βš™οΈ Penyesuaian Fungsi

a. Penyimpanan Log

<?php
require __DIR__ . "/checker.php";
$logger = new logger();

if(auth() === SUKSES){ #Sesuaikan dengan logika coding anda
    $logger->success_login();
}else{
    $logger->fail_login();
}

?>

b. Visualisasi Semua Log

<?php
require __DIR__ . '/checker.php';
$log = new logger();

$log->view_logs(); #Bisa anda bungkus dengan css apapun dan bisa di sesuaikan
?>

c. Visualisasi Statistik

<?php
require __DIR__ . '/checker.php';
$log = new logger();

$log->view_stats(); #Bisa anda bungkus dengan css apapun dan bisa di sesuaikan
?>

πŸ”‘ Contoh Login Demo

Path berada di ./demo/login_test.php

Username Password Status
anjay slebew βœ… Berhasil
lainnya (apa saja) ❌ Gagal

🧱 Konfigurasi Tambahan

Semua konfigurasi diatur di ./config.php:

Parameter Default Deskripsi
key_username user Berikan sesuai input name username anda (<input type="text" name="*USERNAME*">)

*ITU YANG DISESUAIKAN
BLOCK_USER false Aktifkan blokir otomatis IP pengguna
MAX_FAILED_INPUT 5 Jumlah gagal sebelum diblokir
BLOCK_DURATION 30 Lama blokir dalam detik
TIME_FAIL_INPUT 30 Rentang waktu percobaan gagal berturut-turut (detik)
WINDOW_MINUTES 10000 Rentang waktu (menit) untuk statistik
DESCRIPTION_MAX_FAILED_ATTEMPTS ⚠️ IP kamu diblokir sementara 30 detik karena terlalu banyak percobaan gagal. Deskripsi jika percobaan gagal berkali-kali

Contoh:

"BLOCK_USER" => true,  // Aktifkan fitur blokir otomatis

πŸ“Š Tampilan Output

  • Visual Statistik

alt text

  • Visual Semua Riwayat Percobaan

alt text

  • Visual jika user gagal berkali - kali

alt text


πŸ”’ Tentang Keamanan

  1. Menggunakan Prepared Statements (PDO) β†’ aman dari SQL Injection
  2. IP user otomatis dideteksi via $_SERVER
  3. Sistem pemblokiran opsional untuk mencegah brute-force attack
  4. Tidak menyimpan password pengguna

πŸ§‘β€πŸ’» Kontributor

Author: 0xbilly License: MIT GitHub: https://github.com/0xbillyyy/bf_logger


🧾 Lisensi

Proyek ini dirilis di bawah lisensi MIT, yang berarti bebas digunakan dan dimodifikasi untuk kebutuhan pribadi atau komersial, dengan tetap mencantumkan atribusi kepada pembuat aslinya.


❀️ Dukungan

Jika proyek ini bermanfaat, silakan ⭐ star repo ini di GitHub atau kirim feedback / pull request untuk perbaikan.

About

Sebuah sistem pencatat percobaan login (login attempt logger) berbasis PHP + MySQL yang mencatat setiap percobaan login (berhasil maupun gagal), menampilkan log dengan tampilan DataTables, dan menyediakan statistik seperti Top IP, Top Username, serta jumlah login sukses/gagal.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages