Universal Web Application Firewall (WAF), Threat Scanner & Security Monitoring Dashboard for Laravel.
manggala/sentinel is a Laravel package for universal web application firewall (waf), threat scanner & security monitoring dashboard for laravel..
It currently has 0 GitHub stars and 3 downloads on Packagist (latest version v1.0.0).
Install it with composer require manggala/sentinel.
Discover more Laravel packages by manggala
or browse all Laravel packages to compare alternatives.
Last updated
manggala/sentinel (sentinel)manggala/sentinel (Package Name: sentinel) adalah Web Application Firewall (WAF), Intrusion Detection System (IDS), Brute Force Shield, dan Security Monitoring Dashboard serbaguna untuk aplikasi Laravel.
Package ini memberikan perlindungan real-time otomatis dari ancaman OWASP Top 10 (SQL Injection, Cross-Site Scripting, Path Traversal, Remote Code Execution) dan serangan Brute Force Login pada tingkat HTTP Kernel.
manggala/sentinel?../), dan Remote Execution (eval(), system()).| Parameter | Dukungan Versi & Framework |
|---|---|
| Package Name | manggala/sentinel (Folder: sentinel) |
| PHP Version | ^8.2 || ^8.3 || ^8.4 |
| Laravel Framework (4 Major Versions) | ^10.0 || ^11.0 || ^12.0 || ^13.0 |
| Frontend Stack Support | Blade, Livewire (v2/v3), Inertia React, Inertia Vue, REST API |
| Testing Engine | Pest PHP (pestphp/pest) |
| Static Analysis | PHPStan Level 5+ (larastan/larastan) |
Pasang package menggunakan Composer:
composer require manggala/sentinel
Jalankan perintah instalasi otomatis untuk mempublikasikan file konfigurasi dan migrasi database:
php artisan sentinel:install
Jalankan migrasi database untuk membuat tabel sentinel_logs dan sentinel_blocked_ips:
php artisan migrate
bootstrap/app.php)Daftarkan SentinelGuardMiddleware di bootstrap/app.php:
use Manggala\Sentinel\Http\Middleware\SentinelGuardMiddleware;
use Manggala\Sentinel\Http\Middleware\SentinelBruteForceMiddleware;
return Application::configure(basePath: dirname(__DIR__))
->withRouting(
web: __DIR__.'/../routes/web.php',
commands: __DIR__.'/../routes/console.php',
health: '/up',
)
->withMiddleware(function (Middleware $middleware) {
// Daftarkan WAF guard global
$middleware->append(SentinelGuardMiddleware::class);
// Daftarkan Brute Force guard pada endpoint auth
$middleware->alias([
'sentinel.bruteforce' => SentinelBruteForceMiddleware::class,
]);
})
->create();
app/Http/Kernel.php)Tambahkan SentinelGuardMiddleware pada array $middleware di app/Http/Kernel.php:
protected $middleware = [
// ...
\Manggala\Sentinel\Http\Middleware\SentinelGuardMiddleware::class,
];
protected $routeMiddleware = [
// ...
'sentinel.bruteforce' => \Manggala\Sentinel\Http\Middleware\SentinelBruteForceMiddleware::class,
];
manggala/sentinel menggunakan model Anomaly Scoring untuk mengevaluasi setiap request yang masuk:
SqlInjectionScanner):
UNION SELECT, OR 1=1, DROP TABLE, SLEEP(), BENCHMARK().+5 poin.XssScanner):
<script>, javascript:, onload=, onerror=.+4 poin.PathTraversalScanner):
../../../../etc/passwd atau ..\..\windows.+5 poin.CommandInjectionScanner):
system(), passthru(), exec(), shell_exec(), eval().+5 poin.Setiap request dengan Total Anomaly Score >= 5 (dapat diubah di config/sentinel.php) akan otomatis diblokir dengan status HTTP 403 Forbidden dan dicatat ke dalam log.
Sistem proteksi login manggala/sentinel membedakan kesalahan tak sengaja dari serangan bot:
Route::post('/login', [AuthController::class, 'store'])
->middleware('sentinel.bruteforce');
manggala/sentinel menyediakan dashboard visual untuk memantau serangan secara real-time.
Navigasikan peramban Anda ke:
http://your-app.test/sentinel
GET /api/sentinel/metrics
Authorization: Bearer <your-token>
Response JSON:
{
"status": "success",
"data": {
"total_attacks_prevented": 1420,
"blocked_ips_count": 18,
"threat_breakdown": {
"sqli": 520,
"xss": 410,
"lfi": 290,
"rce": 200
}
}
}
config/sentinel.php)return [
/*
|--------------------------------------------------------------------------
| Status Keaktifan WAF
|--------------------------------------------------------------------------
*/
'enabled' => env('SENTINEL_ENABLED', true),
/*
|--------------------------------------------------------------------------
| Anomaly Threat Threshold
|--------------------------------------------------------------------------
| Request dengan total skor ancaman >= threshold akan otomatis diblokir (403).
*/
'threshold' => env('SENTINEL_THRESHOLD', 5),
/*
|--------------------------------------------------------------------------
| Proteksi Login & Brute Force
|--------------------------------------------------------------------------
*/
'brute_force' => [
'max_attempts' => 5,
'decay_seconds' => 60,
'captcha_after' => 3,
],
/*
|--------------------------------------------------------------------------
| IP Whitelist & Blacklist
|--------------------------------------------------------------------------
*/
'whitelist_ips' => [
'127.0.0.1',
'::1',
],
/*
|--------------------------------------------------------------------------
| Route Exclusions (Pengecualian)
|--------------------------------------------------------------------------
*/
'excluded_routes' => [
'admin/page-builder/*',
'api/webhooks/*',
],
];
php artisan sentinel:install
php artisan sentinel:unban 192.168.1.100
php artisan sentinel:whitelist 10.0.0.1
php artisan sentinel:clear-logs --days=30
php artisan sentinel:stats
SentinelAnda dapat berinteraksi secara programatis menggunakan Facade Sentinel:
use Manggala\Sentinel\Facades\Sentinel;
// Memeriksa apakah IP diblokir
if (Sentinel::isIpBlocked('192.168.1.50')) {
// IP sedang diblokir
}
// Memblokir IP secara manual
Sentinel::blockIp('192.168.1.50', 'Aktivitas peretasan mencurigakan');
// Membuka blokir IP
Sentinel::unbanIp('192.168.1.50');
// Mendapatkan ringkasan statistik keamanan
$stats = Sentinel::getMetrics();
manggala/sentinel terintegrasi secara native dengan package Manggala Suite lainnya:
manggala/laravel-spotlight: Ketik Cmd+K untuk langsung membuka perintah "Open Security Dashboard" atau "Check Blocked IPs".manggala/laravel-datatable: Menggunakan komponen data table reaktif untuk menampilkan log serangan dan daftar IP terblokir di dashboard.manggala/laravel-dashboard-builder: Menyediakan widget SecurityAlertsWidget untuk dipasang pada canvas dashboard utama.Jalankan pengujian otomatis menggunakan Pest PHP:
vendor/bin/pest
Jalankan analisis statis menggunakan PHPStan:
vendor/bin/phpstan analyse src --memory-limit=512M
Silakan baca CONTRIBUTING.md untuk panduan berkontribusi pada proyek ini.
Jika Anda menemukan kerentanan keamanan pada package ini, mohon laporkan melalui email ke [email protected] sesuai dengan petunjuk pada SECURITY.md.
Package manggala/sentinel dirilis di bawah Lisensi MIT. Copyright (c) 2026 Ilham Hatta Manggala.