{
"event": "PreToolUse",
"tool_name": "Edit",
"tool_input": {
"file_path": "\/var\/www\/dev.campus.systemische-tools.de\/src\/Framework\/CsrfService.php",
"old_string": "<?php\n\nnamespace Framework;\n\nclass CsrfService",
"new_string": "<?php\n\ndeclare(strict_types=1);\n\nnamespace Framework;\n\n\/\/ @responsibility: CSRF-Token-Generierung und -Validierung\n\nclass CsrfService"
}
}
{
"tool_response": {
"filePath": "\/var\/www\/dev.campus.systemische-tools.de\/src\/Framework\/CsrfService.php",
"oldString": "<?php\n\nnamespace Framework;\n\nclass CsrfService",
"newString": "<?php\n\ndeclare(strict_types=1);\n\nnamespace Framework;\n\n\/\/ @responsibility: CSRF-Token-Generierung und -Validierung\n\nclass CsrfService",
"originalFile": "<?php\n\nnamespace Framework;\n\nclass CsrfService\n{\n private const TOKEN_NAME = '_csrf_token';\n private const TOKEN_LENGTH = 32;\n\n public static function generateToken(): string\n {\n if (empty($_SESSION[self::TOKEN_NAME])) {\n $_SESSION[self::TOKEN_NAME] = bin2hex(random_bytes(self::TOKEN_LENGTH));\n }\n\n return $_SESSION[self::TOKEN_NAME];\n }\n\n public static function getToken(): string\n {\n return $_SESSION[self::TOKEN_NAME] ?? self::generateToken();\n }\n\n public static function validateToken(?string $token): bool\n {\n if ($token === null || empty($_SESSION[self::TOKEN_NAME])) {\n return false;\n }\n\n return hash_equals($_SESSION[self::TOKEN_NAME], $token);\n }\n\n public static function regenerateToken(): string\n {\n unset($_SESSION[self::TOKEN_NAME]);\n\n return self::generateToken();\n }\n\n public static function getTokenField(): string\n {\n $token = htmlspecialchars(self::getToken(), ENT_QUOTES, 'UTF-8');\n\n return '<input type=\"hidden\" name=\"' . self::TOKEN_NAME . '\" value=\"' . $token . '\">';\n }\n}\n",
"structuredPatch": [
{
"oldStart": 1,
"oldLines": 7,
"newStart": 1,
"newLines": 11,
"lines": [
" <?php",
" ",
"+declare(strict_types=1);",
"+",
" namespace Framework;",
" ",
"+\/\/ @responsibility: CSRF-Token-Generierung und -Validierung",
"+",
" class CsrfService",
" {",
" private const TOKEN_NAME = '_csrf_token';"
]
}
],
"userModified": false,
"replaceAll": false
}
}