diff --git a/www/admin.php b/www/admin.php index b7924f9..a8d01e4 100644 --- a/www/admin.php +++ b/www/admin.php @@ -885,5 +885,4 @@ $identities = $sql->get("SELECT * FROM identities ORDER BY id DESC"); //TODO anzeige von einer gelöschten oder leeren datei ausblenden, bei vollzogenem löschvorgang -//TODO prüfen ob dateien nur mit korrektem uuid herunterladbar sind ?> diff --git a/www/download.php b/www/download.php index 5009777..b841e47 100644 --- a/www/download.php +++ b/www/download.php @@ -6,13 +6,19 @@ require '_func.php'; * Eingaben prüfen */ $fileId = isset($_GET['id']) ? (int)$_GET['id'] : 0; -$uuid = $_GET['uuid'] ?? null; +$uuid = trim($_GET['uuid'] ?? ''); if ($fileId <= 0 || !$uuid) { http_response_code(400); exit('Ungültige Anfrage'); } +if (!preg_match('/^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i', $uuid)) { + http_response_code(400); + exit('Ungültige Anfrage'); + //TODO fehlgeschlagener zugriff als fehlerhafte anmeldung ansehen und bei wiederholung ip sperren +} + /** * Token validieren */