Backup #2092
| ID | 2092 |
| Dateipfad | /var/www/dev.campus.systemische-tools.de/src/Framework/Http/CsrfTrait.php |
| Version | 1 |
| Typ |
modified |
| Größe | 1.1 KB |
| Hash | 9648d4865c7857780dc2ffcd6131eebddf817c132fff08698e8732ce594ab9ba |
| Datum | 2025-12-29 00:18:47 |
| Geändert von | claude-code-hook |
| Grund | Claude Code Pre-Hook Backup vor Edit-Operation |
| Datei existiert |
Ja
|
Dateiinhalt
<?php
declare(strict_types=1);
namespace Framework\Controller;
// @responsibility: CSRF-Token-Handling für Controller
use Framework\CsrfService;
trait CsrfTrait
{
protected function csrfToken(): string
{
return CsrfService::getToken();
}
protected function csrfField(): string
{
return CsrfService::getTokenField();
}
protected function validateCsrf(): bool
{
$token = $_POST['_csrf_token'] ?? $_SERVER['HTTP_X_CSRF_TOKEN'] ?? null;
return CsrfService::validateToken($token);
}
protected function requireCsrf(): void
{
if (!$this->validateCsrf()) {
if ($this->isJsonRequest()) {
$this->json(['error' => 'CSRF token invalid'], 403);
} else {
$this->text('CSRF token invalid', 403);
}
exit;
}
}
private function isJsonRequest(): bool
{
$accept = $_SERVER['HTTP_ACCEPT'] ?? '';
$contentType = $_SERVER['CONTENT_TYPE'] ?? '';
return str_contains($accept, 'application/json') || str_contains($contentType, 'application/json');
}
}
Vollständig herunterladen
Aktionen
← Zurück zur Übersicht