chore: complete update

This commit is contained in:
2025-07-17 16:24:20 +02:00
parent 899227b0a4
commit 64a7051137
1300 changed files with 85570 additions and 2756 deletions

View File

@@ -0,0 +1,57 @@
<?php
declare(strict_types=1);
namespace App\Application\Security\Events\Input;
use App\Application\Security\{OWASPSecurityEvent};
use App\Application\Security\ValueObjects\{OWASPEventIdentifier, OWASPLogLevel, MaskedEmail};
final class XssAttemptEvent implements OWASPSecurityEvent
{
private ?MaskedEmail $maskedEmail;
public function __construct(
public readonly string $attackPayload,
public readonly string $targetField,
public readonly string $xssType,
public readonly ?string $email = null
) {
$this->maskedEmail = $this->email ? MaskedEmail::fromString($this->email) : null;
}
public function getOWASPEventIdentifier(): OWASPEventIdentifier
{
return OWASPEventIdentifier::maliciousInput('xss_attempt');
}
public function getOWASPLogLevel(): OWASPLogLevel
{
return OWASPLogLevel::ERROR;
}
public function getDescription(): string
{
return "XSS attempt detected: {$this->xssType}";
}
public function getEventData(): array
{
return [
'attack_payload' => $this->sanitizePayload($this->attackPayload),
'target_field' => $this->targetField,
'xss_type' => $this->xssType,
'username' => $this->maskedEmail?->toString() ?? 'anonymous'
];
}
public function getMaskedEmail(): ?MaskedEmail
{
return $this->maskedEmail;
}
private function sanitizePayload(string $payload): string
{
// HTML-Tags entfernen aber Struktur beibehalten für Analyse
return substr(htmlspecialchars($payload, ENT_QUOTES, 'UTF-8'), 0, 200);
}
}