- Add comprehensive health check system with multiple endpoints - Add Prometheus metrics endpoint - Add production logging configurations (5 strategies) - Add complete deployment documentation suite: * QUICKSTART.md - 30-minute deployment guide * DEPLOYMENT_CHECKLIST.md - Printable verification checklist * DEPLOYMENT_WORKFLOW.md - Complete deployment lifecycle * PRODUCTION_DEPLOYMENT.md - Comprehensive technical reference * production-logging.md - Logging configuration guide * ANSIBLE_DEPLOYMENT.md - Infrastructure as Code automation * README.md - Navigation hub * DEPLOYMENT_SUMMARY.md - Executive summary - Add deployment scripts and automation - Add DEPLOYMENT_PLAN.md - Concrete plan for immediate deployment - Update README with production-ready features All production infrastructure is now complete and ready for deployment.
63 lines
1.6 KiB
PHP
63 lines
1.6 KiB
PHP
<?php
|
|
|
|
declare(strict_types=1);
|
|
|
|
namespace App\Framework\Exception\SecurityEvent;
|
|
|
|
use App\Framework\Exception\SecurityLogLevel;
|
|
|
|
/**
|
|
* Bot Detection Event (Honeypot, Rate Limiting, etc.)
|
|
*/
|
|
final readonly class BotDetectedEvent implements SecurityEventInterface
|
|
{
|
|
public function __construct(
|
|
public string $reason,
|
|
public string $ip,
|
|
public string $userAgent,
|
|
public ?string $detectionMethod = 'honeypot'
|
|
) {
|
|
}
|
|
|
|
public function getEventIdentifier(): string
|
|
{
|
|
return "bot_detected:{$this->detectionMethod}:{$this->ip}";
|
|
}
|
|
|
|
public function getDescription(): string
|
|
{
|
|
return "Bot activity detected: {$this->reason}";
|
|
}
|
|
|
|
public function getLogLevel(): SecurityLogLevel
|
|
{
|
|
return SecurityLogLevel::WARN;
|
|
}
|
|
|
|
public function getCategory(): string
|
|
{
|
|
return 'bot_protection';
|
|
}
|
|
|
|
public function requiresAlert(): bool
|
|
{
|
|
// Honeypot triggers sollten geloggt werden, aber nicht sofort alertieren
|
|
// (außer bei ungewöhnlich vielen Versuchen von der gleichen IP)
|
|
return false;
|
|
}
|
|
|
|
public function toArray(): array
|
|
{
|
|
return [
|
|
'reason' => $this->reason,
|
|
'ip' => $this->ip,
|
|
'user_agent' => $this->userAgent,
|
|
'detection_method' => $this->detectionMethod,
|
|
'event_identifier' => $this->getEventIdentifier(),
|
|
'category' => $this->getCategory(),
|
|
'log_level' => $this->getLogLevel()->value,
|
|
'requires_alert' => $this->requiresAlert(),
|
|
];
|
|
}
|
|
}
|