Die alte Wand schweigt: ein Modi-Code zaehlt dort wie ein erfundener
Filipe: "auf der workspace seite fuer die agentur und so sollen die modis von mir nicht mehr rein kommen." Das war seit dem Deploy schon so -- ein Modi bekam dort keine Sitzung. Offen war nur, WIE die Wand reagiert: Bis eben zeigte sie ihm den Weg zur neuen Adresse. Seine Entscheidung: "gar nichts -- Code stimmt nicht." WARUM DAS EIN ANDERER WEG IST UND NICHT NUR EINE ANDERE ANTWORT Ein schlichtes `return 401` haette die richtige Meldung gezeigt und trotzdem eine Spur hinterlassen: Der verborgene Zugang waere weiterhin befragt worden -- ein Suchschluessel-Treffer und EIN scrypt-Durchlauf statt der Kandidatenschleife der gewaehlten Kachel. Das ist messbar, und Zeitunterschiede sind genau die Spur, die dieser Zugang vermeiden soll. Deshalb wird stillerZugang() auf den drei alten Adressen ueberhaupt nicht mehr aufgerufen. Der Code faellt danach durch den gewohnten Weg wie jeder unbekannte: dieselbe Schleife, derselbe Eintrag in `versuche`, dieselbe Antwort, dieselbe Dauer. Die alte Wand verhaelt sich exakt so wie an dem Tag, bevor es diese Rollen gab. GEPRUEFT WIRD DIE UNUNTERSCHEIDBARKEIT, NICHT DER STATUSCODE Eine 401 waere leicht zu erfuellen und truege trotzdem eine Spur, wenn Rumpf oder Koepfe anders aussaehen. Die Pruefung schickt deshalb einen echten Modi-Code und einen frei erfundenen an dieselbe Wand und vergleicht Zeichen fuer Zeichen: ok workspace.: der Modi-Code wird abgewiesen wie ein erfundener (401) ok workspace.: und die Antwort ist Zeichen fuer Zeichen dieselbe ok workspace.: die neue Adresse wird nicht genannt DER PREIS, und er gehoert genannt: Ein Modi mit der alten Verknuepfung sammelt dort jetzt Fehlversuche wie jeder andere. Acht in zehn Minuten sperren seine IP -- auch fuer die neue Adresse, denn die Sperre haengt an der IP, nicht am Hostnamen. GEMESSEN pruef-crew-adresse 115 (statt 114 -- die neue Gegenprobe) pruef-rollen 274 pruef-modi-verborgen 78 Co-Authored-By: Claude Opus 5 <[email protected]>
This commit is contained in:
@@ -124,7 +124,7 @@ const LOKAL = "127.0.0.1:4371";
|
||||
hier moeglich ist: die Entscheidung pruefen, nicht ihre Auswirkung.
|
||||
===================================================================== */
|
||||
console.log("\n--- Die Regeln selbst ---");
|
||||
const { istCrewAdresse, istOhneModiAdresse, istWorkspacePfad, sitzungPasstZurAdresse, CREW_ADRESSE }
|
||||
const { istCrewAdresse, istOhneModiAdresse, istWorkspacePfad, sitzungPasstZurAdresse }
|
||||
= await import("./crew-adresse.js");
|
||||
|
||||
ok(istCrewAdresse(CREW) === true, "crew.dogfather-universe.com ist die Modi-Adresse");
|
||||
@@ -214,13 +214,12 @@ const handAufCrew = await anmelden(CREW, "hand", "CODE-HAND-0001");
|
||||
ok(handAufCrew.status === 200 && handAufCrew.keks.includes("dfw_sitzung"),
|
||||
"crew.: die rechte Hand kommt herein");
|
||||
|
||||
/* Und sie kommt NICHT auf die andere Adresse -- genau wie ein Modi.
|
||||
Sie bekommt dort denselben Hinweis auf die neue Adresse. */
|
||||
/* Und sie kommt NICHT auf die andere Adresse -- genau wie ein Modi,
|
||||
und mit genau derselben Antwort wie ein erfundener Code. */
|
||||
const handAufWs = await anmelden(WS, "creator", "CODE-HAND-0001");
|
||||
let zielHand = {};
|
||||
try { zielHand = JSON.parse(handAufWs.text); } catch { /* bleibt leer */ }
|
||||
ok(handAufWs.status === 200 && zielHand.weiter === `${CREW_ADRESSE}/workspace/start.html`,
|
||||
"workspace.: die rechte Hand wird auf die neue Adresse verwiesen");
|
||||
const erfunden2 = await anmelden(WS, "creator", "AUCH-DIESEN-NICHT-000");
|
||||
ok(handAufWs.status === 401 && handAufWs.text === erfunden2.text,
|
||||
`workspace.: die rechte Hand wird abgewiesen wie ein erfundener Code (${handAufWs.status})`);
|
||||
ok(!handAufWs.keks.includes("dfw_sitzung"),
|
||||
"workspace.: und bekommt dort keine Sitzung");
|
||||
|
||||
@@ -229,14 +228,25 @@ ok(!handAufWs.keks.includes("dfw_sitzung"),
|
||||
const spicyAufCrew = await anmelden(CREW, "spicy", "CODE-DOGI-0001");
|
||||
ok(spicyAufCrew.status === 401, "crew.: eine fremde Kachel gibt es dort nicht");
|
||||
|
||||
/* =====================================================================
|
||||
DIE ALTE WAND SCHWEIGT (Entscheidung Filipe, 10.09.2026)
|
||||
|
||||
Vorher zeigte sie einem Modi den Weg zur neuen Adresse. Seine
|
||||
Entscheidung: "gar nichts -- Code stimmt nicht."
|
||||
|
||||
GEPRUEFT WIRD NICHT DER STATUSCODE, SONDERN DIE UNUNTERSCHEIDBARKEIT.
|
||||
Eine 401 waere leicht zu erfuellen und truege trotzdem eine Spur, wenn
|
||||
der Rumpf, die Koepfe oder die Dauer anders aussaehen als bei einem
|
||||
erfundenen Code. Deshalb wird beides nebeneinandergelegt und
|
||||
verglichen -- Zeichen fuer Zeichen. */
|
||||
const erfunden = await anmelden(WS, "creator", "DIESEN-CODE-GIBT-ES-NICHT");
|
||||
const modiAufWs = await anmelden(WS, "creator", "CODE-MODI-0001");
|
||||
ok(modiAufWs.status === 200, "workspace.: der Modi bekommt eine Antwort");
|
||||
let zielWs = {};
|
||||
try { zielWs = JSON.parse(modiAufWs.text); } catch { /* bleibt leer */ }
|
||||
ok(zielWs.weiter === `${CREW_ADRESSE}/workspace/start.html`,
|
||||
"workspace.: sie zeigt ihm die neue Adresse");
|
||||
ok(!modiAufWs.keks.includes("dfw_sitzung"),
|
||||
"workspace.: aber KEINE Sitzung -- er meldet sich nur noch auf crew. an");
|
||||
ok(modiAufWs.status === erfunden.status && modiAufWs.status === 401,
|
||||
`workspace.: der Modi-Code wird abgewiesen wie ein erfundener (${modiAufWs.status})`);
|
||||
ok(modiAufWs.text === erfunden.text,
|
||||
`workspace.: und die Antwort ist Zeichen fuer Zeichen dieselbe (${modiAufWs.text.slice(0, 40)})`);
|
||||
ok(!modiAufWs.keks.includes("dfw_sitzung"), "workspace.: keine Sitzung");
|
||||
ok(!/crew\./.test(modiAufWs.text), "workspace.: die neue Adresse wird nicht genannt");
|
||||
|
||||
/* DER WICHTIGSTE PUNKT DIESER DATEI. Derselbe Dienst bedient beide
|
||||
Adressen; ein Denkfehler hier sperrt das ganze Team aus. */
|
||||
|
||||
Reference in New Issue
Block a user