Fix: *.pages.dev-Vorschau-Adresse bleibt für immer gesperrt, unabhängig von SITE_PUBLIC
Bisher hätte SITE_PUBLIC=true (gedacht für den Go-Live der eigenen Domain) versehentlich auch die interne *.pages.dev-Werkstatt-Adresse für jede/n im Internet geöffnet, weil die Middleware nur den Pfad, nie den aufgerufenen Hostnamen geprüft hat. Jetzt hart anhand des Hostnamens geprüft: nur ein Hostname außerhalb von *.pages.dev darf durch SITE_PUBLIC öffentlich werden. Per wrangler pages dev mit Host-Header-Overrides verifiziert (pages.dev -> weiterhin 302 Gate-Redirect, andere Domain -> 200). Nebenbei: totes, seit 04.08.2026 ungenutztes Secret VERWALTUNG_ACCESS_CODE live + lokal entfernt (Code prüft seitdem denselben Zugangscode wie der normale Seitenzugang), sowie zwei veraltete Kommentare bereinigt, die noch auf die längst entfernte Seite /demo-abo/ verwiesen.
This commit is contained in:
@@ -31,6 +31,9 @@
|
||||
ist nie für Kund:innen gedacht. /api/orders (Bestellung ANLEGEN beim Checkout) ist bewusst
|
||||
NICHT dauerhaft geschützt — das muss auch für echte Kund:innen erreichbar sein, sobald der
|
||||
Shop öffentlich ist, genau wie der Checkout selbst.
|
||||
- Die *.pages.dev-Adresse (interne "Werkstatt"/Vorschau, siehe onRequest() unten) bleibt
|
||||
UNABHÄNGIG vom SITE_PUBLIC-Schalter für immer hinter dem Zugangscode — nur die spätere eigene
|
||||
Domain soll durch SITE_PUBLIC=true öffentlich werden.
|
||||
- /verwaltung/* + /api/verwaltung/* verlangen ZUSÄTZLICH zum normalen 90-Tage-Seitenzugang noch
|
||||
eine zweite, eigene Sitzung, die nur 24 Stunden gültig ist (siehe
|
||||
functions/_shared/verwaltung-auth.js, /verwaltung-code.html) — auf ausdrücklichen Wunsch.
|
||||
@@ -184,7 +187,18 @@ export async function onRequest(context) {
|
||||
// SITE_PUBLIC=true (wrangler pages secret put) — dann öffnet sich der Rest der Seite für alle,
|
||||
// aber /verwaltung/ bleibt weiterhin komplett hinter dem Zugangscode.
|
||||
const immerGeschuetzterPfad = url.pathname.startsWith("/verwaltung") || url.pathname.startsWith("/api/verwaltung");
|
||||
const sitePublic = env.SITE_PUBLIC === "true";
|
||||
|
||||
// WICHTIG (04.08.2026, auf ausdrücklichen Wunsch klargestellt): Die *.pages.dev-Adresse ist die
|
||||
// interne "Werkstatt"/Vorschau-Adresse, unter der qciga und VanVan gemeinsam an der Seite
|
||||
// arbeiten und Änderungen zuerst begutachten, BEVOR sie über die eigene Domain live gehen —
|
||||
// diese Adresse soll NIEMALS öffentlich werden, auch nicht aus Versehen. Nur die spätere eigene
|
||||
// Domain (vans-diy-bastelbedarf.com) soll durch SITE_PUBLIC=true öffentlich geschaltet werden
|
||||
// können. Ohne diese Unterscheidung würde SITE_PUBLIC=true (gedacht für den Domain-Go-Live)
|
||||
// versehentlich auch die *.pages.dev-Vorschau-Adresse für jede/n im Internet öffnen — genau das
|
||||
// darf nie passieren, deshalb hier hart anhand des aufgerufenen Hostnamens geprüft, unabhängig
|
||||
// vom SITE_PUBLIC-Wert.
|
||||
const istWorkVorschauHost = url.hostname.endsWith(".pages.dev");
|
||||
const sitePublic = env.SITE_PUBLIC === "true" && !istWorkVorschauHost;
|
||||
if (sitePublic && !immerGeschuetzterPfad) {
|
||||
return next();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user