| 12345678910111213141516171819202122232425262728293031323334353637 |
- <?php
- /**
- * lib/csrf.php
- *
- * CSRF protection functions.
- */
- /**
- * Generate CSRF token
- */
- function generateCsrfToken(): string
- {
- if (empty($_SESSION['csrf_token'])) {
- $_SESSION['csrf_token'] = bin2hex(random_bytes(32));
- }
- return $_SESSION['csrf_token'];
- }
- /**
- * Verify CSRF token
- */
- function verifyCsrfToken(string $token): bool
- {
- if (empty($_SESSION['csrf_token']) || empty($token)) {
- return false;
- }
- return hash_equals($_SESSION['csrf_token'], $token);
- }
- /**
- * Regenerate CSRF token (call after successful form submission)
- */
- function regenerateCsrfToken(): void
- {
- unset($_SESSION['csrf_token']);
- }
- ?>
|