PHP WebShell

Текущая директория: /var/www/bitcardoApp/lib

Просмотр файла: csrf.php

<?php
// lib/csrf.php — tiny CSRF helper

function csrf_ensure(): void {
  if (session_status() !== PHP_SESSION_ACTIVE) session_start();
  if (empty($_SESSION['csrf'])) {
    $_SESSION['csrf'] = bin2hex(random_bytes(32));
  }
}

function csrf_token(): string {
  csrf_ensure();
  return $_SESSION['csrf'];
}

function csrf_verify_or_fail(?string $token, string $failRedirect = null): void {
  csrf_ensure();
  if (!$token || !hash_equals($_SESSION['csrf'], (string)$token)) {
    if ($failRedirect) {
      $_SESSION['error'] = 'Session expired. Please try again.';
      header('Location: ' . $failRedirect);
      exit;
    }
    http_response_code(403);
    exit('CSRF verification failed.');
  }
}

Выполнить команду


Для локальной разработки. Не используйте в интернете!