Files
cmsPRO/autoload/Shared/Security/CsrfToken.php
Jacek Pyziak 3325eaf44c refactor: centralny autoloader, Shared\Email i Shared\Security
- Utworzono autoload/autoloader.php (hybrydowy PSR-4 + legacy)
- Zmigrowano 7 entry pointów do centralnego autoloadera
- Dodano PSR-4 mapowanie w composer.json (Domain, Shared, Admin, Frontend)
- Utworzono Shared\Email\Email (PHPMailer, migracja z Helpers)
- Utworzono Shared\Security\CsrfToken (random_bytes + hash_equals)
- Wrappery w Helpers delegują do nowych klas
- Zaktualizowano docs/PROJECT_STRUCTURE.md
- Inicjalizacja PAUL (.paul/) z roadmapą 19 faz refaktoryzacji

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-04 17:28:01 +02:00

29 lines
590 B
PHP

<?php
namespace Shared\Security;
class CsrfToken
{
const SESSION_KEY = 'csrf_token';
public static function getToken()
{
if ( empty( $_SESSION[self::SESSION_KEY] ) )
$_SESSION[self::SESSION_KEY] = bin2hex( random_bytes( 32 ) );
return $_SESSION[self::SESSION_KEY];
}
public static function validate( $token )
{
if ( empty( $_SESSION[self::SESSION_KEY] ) || empty( $token ) )
return false;
return hash_equals( $_SESSION[self::SESSION_KEY], $token );
}
public static function regenerate()
{
unset( $_SESSION[self::SESSION_KEY] );
}
}