Steuerkram/tests/62_BankDirektRunCsrfTest.php

43 lines
1.2 KiB
PHP

<?php
declare(strict_types=1);
use Steuerkram\Auth;
class BankDirektRunCsrfTest extends TestCase
{
protected string $testName = 'Test 62: CSRF-Schutz für GET /bank/direkt/{id}/run';
public function run(): void
{
$backup = $_SESSION['csrf_token'] ?? null;
try {
$_SESSION['csrf_token'] = 'geheimes-session-token';
$this->assert(
Auth::isValidCsrfToken('geheimes-session-token'),
'Korrektes Token wird akzeptiert'
);
$this->assert(
!Auth::isValidCsrfToken('falsches-token'),
'Falsches Token wird abgelehnt'
);
$this->assert(
!Auth::isValidCsrfToken(''),
'Leeres Token (fehlender Query-Parameter) wird abgelehnt'
);
unset($_SESSION['csrf_token']);
$this->assert(
!Auth::isValidCsrfToken('irgendein-token'),
'Ohne Session-Token wird jedes Token abgelehnt'
);
} finally {
if ($backup === null) {
unset($_SESSION['csrf_token']);
} else {
$_SESSION['csrf_token'] = $backup;
}
}
}
}