Sicherheits- und Stabilitaetskorrekturen nach vollstaendiger Pruefung
- Login-Sperre war umgehbar: clientKey() vertraute dem Header CF-Connecting-IP. Bei Cloudflare war das sicher (CF ueberschreibt ihn), auf dem eigenen Server nicht: der Ursprungsserver ist auch direkt unter seiner IP erreichbar, dort konnte der Header frei gesetzt und die 5-Versuche-Sperre komplett ausgehebelt werden (nachgewiesen). Jetzt req.ip hinter trust proxy. - Absturzsicherheit: Express 4 faengt Fehler aus async-Handlern nicht ab, eine einzige fehlerhafte Anfrage konnte den ganzen Dienst beenden. wrap() um alle Handler, zentraler Fehler-Handler, unhandledRejection/uncaughtException-Netz. - Sicherheits-Header (X-Content-Type-Options, X-Frame-Options, Referrer-Policy, Permissions-Policy, HSTS) wurden bisher nur ueber die Datei _headers gesetzt, die auf dem eigenen Server wirkungslos ist. Jetzt im Express-Server. - x-powered-by abgeschaltet. - Datenschutzerklaerung/AGB: nannten Cloudflare als Hoster und eine Cloudflare-D1- Datenbank. Jetzt korrekt netcup (Rechenzentrum Nuernberg) als Hoster, Cloudflare als vorgeschaltetes CDN mit Drittlandhinweis.
This commit is contained in:
+4
-2
@@ -80,7 +80,9 @@ export function gateMiddleware(req, res, next) {
|
||||
if (!codesKonfiguriert) return next();
|
||||
|
||||
if (pfad === "/gate-auth" && req.method === "POST") {
|
||||
return gateAuthHandler(req, res);
|
||||
// .catch(next) ergänzt 05.08.2026: ohne das würde ein Fehler beim Signieren zu einer
|
||||
// unbehandelten Promise-Ablehnung und damit zum Absturz des ganzen Servers führen.
|
||||
return Promise.resolve(gateAuthHandler(req, res)).catch(next);
|
||||
}
|
||||
|
||||
const sessionToken = req.cookies?.[COOKIE_NAME];
|
||||
@@ -101,5 +103,5 @@ export function gateMiddleware(req, res, next) {
|
||||
|
||||
const nextParam = pfad === "/" ? "/index.html" : pfad + (req.originalUrl.includes("?") ? "?" + req.originalUrl.split("?")[1] : "");
|
||||
return res.redirect(302, `/gate.html?next=${encodeURIComponent(nextParam)}`);
|
||||
})();
|
||||
})().catch(next); // siehe oben: verhindert Serverabsturz bei einem Fehler in der Prüfung
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user