(a) public/O-CHAT.html nach BEISPIELE/ verschoben, Test 93 hält den Webroot sauber. (b) bank/fints.php in Teil-Views + public/static/js/fints.js aufgeteilt. (c) settings/bankimport.php in Teil-Views + public/static/js/bankimport.js aufgeteilt. (d) src/Request.php angelegt, BankController als erster Controller umgestellt.
38 lines
1.2 KiB
PHP
38 lines
1.2 KiB
PHP
<?php
|
|
|
|
declare(strict_types=1);
|
|
|
|
/**
|
|
* Test 93: Sauberkeit des Webroots (Fix #161a)
|
|
*
|
|
* public/O-CHAT.html war ein Testartefakt ohne Referenz aus Router, View oder
|
|
* Navigation, wurde von Apache aber direkt ausgeliefert und lief damit an der
|
|
* Authentifizierung vorbei. Dieser Test hält den Webroot dauerhaft sauber:
|
|
* außer index.php, .htaccess und dem static/-Verzeichnis darf dort nichts
|
|
* direkt ausliefer-fähiges liegen.
|
|
*/
|
|
class WebrootSauberkeitTest extends TestCase
|
|
{
|
|
protected string $testName = 'Test 93: Sauberkeit des Webroots';
|
|
|
|
public function run(): void
|
|
{
|
|
$publicDir = __DIR__ . '/../public';
|
|
$this->assert(is_dir($publicDir), 'public/ existiert');
|
|
|
|
$erlaubt = ['index.php', '.htaccess', 'static'];
|
|
$eintraege = array_diff(scandir($publicDir), ['.', '..']);
|
|
|
|
foreach ($eintraege as $eintrag) {
|
|
$this->assert(
|
|
in_array($eintrag, $erlaubt, true),
|
|
"Unerwarteter Eintrag im Webroot: public/$eintrag"
|
|
);
|
|
}
|
|
|
|
$this->assert(
|
|
!file_exists($publicDir . '/O-CHAT.html'),
|
|
'public/O-CHAT.html ist entfernt'
|
|
);
|
|
}
|
|
}
|