subhashladumor1/laravel-cybershield
Enterprise security intelligence for Laravel: signature-based WAF, adaptive rate limiting, bot fingerprinting, API integrity checks, threat scoring, malware scanning, and forensic logging—working together to block modern attacks. Beta; APIs may change.
Installation
composer require subhashladumor1/laravel-cybershield
php artisan vendor:publish --provider="CyberShield\CyberShieldServiceProvider" --tag="config"
php artisan migrate
config/cybershield.php exists and is published.First Use Case: Enable Core Protections
Add to app/Http/Kernel.php:
'web' => [
\CyberShield\Http\Middleware\CyberShieldWeb::class,
// ... other middleware
],
'api' => [
\CyberShield\Http\Middleware\CyberShieldApi::class,
// ... other middleware
],
Quick Start Dashboard
Register the dashboard route in routes/web.php:
Route::middleware(['web', 'auth'])->group(function () {
\CyberShield\Http\Middleware\CyberShieldDashboard::route();
});
Access at /cybershield/dashboard (requires auth middleware).
config/cybershield.php – Centralized settings for all security layers.app/Http/Middleware/ – Auto-generated by the package (check CyberShieldWeb/CyberShieldApi).storage/logs/cybershield.log – Real-time threat events and blocked requests./cybershield/dashboard – Visual overview of active threats, blocked IPs, and security events.Enable/disable modules via config:
'modules' => [
'waf' => true,
'rate_limiting' => ['enabled' => true, 'max_attempts' => 100],
'bot_detection' => ['enabled' => true, 'sensitivity' => 'high'],
'geo_blocking' => ['enabled' => true, 'blocked_countries' => ['RU', 'CN']],
],
php artisan cybershield:test to validate config syntax.Override global limits for specific routes:
Route::middleware(['throttle:cybershield|60,1'])->group(function () {
// High-traffic API endpoint
});
throttle middleware for granular control.Add to Blade templates:
@honeypot
cybershield_events table.Secure API routes with:
Route::middleware(['api', 'cybershield.api'])->group(function () {
// API endpoints
});
Listen for security events:
use CyberShield\Events\ThreatDetected;
Event::listen(ThreatDetected::class, function ($event) {
// Custom logic (e.g., Slack alert, Sentry reporting)
});
cybershield_events for real-time threat search:
use CyberShield\Scout\CyberShieldScout;
$threats = CyberShieldScout::search('SQLi')->toArray();
'malware_scanning' => [
'enabled' => true,
'queue' => 'cybershield',
],
config/cybershield.php:
'trusted_ips' => [
'stripe.com',
'google.com',
],
Performance Overhead
'excluded_paths' => [
'assets/*',
'images/*',
],
False Positives
'bot_whitelist' => [
'Googlebot',
'Bingbot',
],
Dashboard Auth Bypass
auth middleware if not properly grouped.auth middleware (see Getting Started).SQLi/XSS Rule Conflicts
'xss_protection' => ['enabled' => true, 'sensitivity' => 'medium'],
Config Validation Errors
php artisan cybershield:validate to pre-check config.config/cybershield.php:
'logging' => [
'level' => 'debug', // 'error', 'warning', 'info', 'debug'
],
Route::middleware(['cybershield.bypass'])->group(function () {
// Test routes (temporarily disable all checks)
});
php artisan cybershield:events --dump
Custom Rules Extend WAF rules via service providers:
public function register()
{
CyberShield::extend('custom_rule', function ($request) {
return $request->input('sensitive_data') === 'secret';
});
}
Malware Scanners Add custom scanners:
CyberShield::malwareScanner('clamscan', function ($file) {
return shell_exec("clamscan {$file}");
});
Dashboard Widgets Create custom widgets:
CyberShield::dashboardWidget('CustomWidget', \App\Widgets\CustomWidget::class);
API Hooks Intercept API requests:
CyberShield::apiHook('before', function ($request) {
// Pre-process API payload
});
'rate_limiting' => [
'rules' => [
'scrapers' => ['max_attempts' => 10, 'user_agents' => ['*scraper*']],
],
],
'geo_blocking' => [
'exceptions' => [
'192.168.1.0/24', // Local dev network
],
],
ban command for auto-blocked IPs:
php artisan ban:add $(cat storage/logs/cybershield.log | grep "Blocked IP" | awk '{print $5}')
How can I help you explore Laravel packages today?