Files
lernbar/docs/ABNAHME.md
T
Florian WildeandClaude Opus 5.5 31d7779f45 Bremse gegen Passwortraten
Nach fuenf Fehlversuchen wird eine E-Mail-Adresse gesperrt, erst eine
Minute, dann doppelt so lang, hoechstens 15 Minuten. Gezaehlt wird je
Adresse, auch fuer unbekannte - sonst verriete die Sperre, welche Konten
es gibt. Waehrend der Sperre kommt auch das richtige Passwort nicht durch.

Jeder Versuch zaehlt sofort und wird bei Erfolg zurueckgenommen. Zwischen
Sperrpruefung und Zaehlen liegt damit kein await; gleichzeitige Anfragen
kommen so nicht alle an der Sperre vorbei.

Der Zaehler liegt im Speicher des einen Prozesses. Ein Neustart setzt ihn
zurueck - der Notausgang, falls sich das einzige Ausbilderkonto aussperrt.
Beim Aufraeumen wird eine laufende Sperre nie verdraengt.

Die Containerabnahme prueft die Sperre im laufenden Abbild. Das
Abnahmeprotokoll ist gegen diesen Stand neu erzeugt.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-04 18:25:04 +02:00

2.6 KiB

Abnahmeprotokoll

Erzeugt am 2026-10-04 16:24 Uhr

Erzeugt von scripts/pruefungen/abnahme.mjs gegen eine frische, leere Datenbank.

A1 · Aus dem Nichts aufsetzbar

  • ✓ Das erste Ausbilderkonto entsteht auf der Kommandozeile — ohne Fehler
  • ✓ Die Datenbank wurde angelegt und die Migrationen liefen an
  • ✓ Die Anwendung startet und meldet sich gesund
  • ✓ Heile Inhalte werden ohne Beanstandung gelesen — Inhalte in Ordnung
  • ✓ Ein Inhaltsfehler lässt die Prüfung fehlschlagen — Ende 1
  • ✓ Die Meldung nennt die Datei — kaputte-inhalte/handouts/N3-subnetting-rechnen.md:7 (rahmenplan)
  • ✓ Die Meldung nennt die richtige Zeile — erwartet Zeile 7
  • ✓ Die Meldung nennt den fehlerhaften Wert
  • ✓ Die Meldung sagt, wo die gültigen Werte stehen

A2 · Zwei Rollen, keine Selbstregistrierung

  • ✓ Die Anmeldeseite bietet keine Registrierung
  • ✓ Ohne Anmeldung führt jeder Pfad zur Anmeldung — HTTP 307
  • ✓ Der Ausbilder meldet sich an

A3 · Der Ausbilder legt Konten an

  • ✓ Der Azubi steht in der Verwaltung
  • ✓ Das Passwort ist in der Oberfläche nirgends mehr zu sehen
  • ✓ In der Datenbank steht kein Klartextpasswort
  • ✓ Das Passwort liegt als Argon2id-Hash — $argon2id$v=19$m=19456,t=2,p=1

A4 · Der Azubi arbeitet

  • ✓ Der Azubi meldet sich mit dem vergebenen Passwort an
  • ✓ Ein Handout lässt sich als gelesen markieren
  • ✓ Eine Merkkarte lässt sich bewerten — Zuletzt: kommt morgen.

A5 · Aufgabe abgeben und abnehmen

  • ✓ Der Azubi hält seine Arbeit in Notizen fest
  • ✓ Der Azubi meldet die Aufgabe zur Abnahme
  • ✓ Die Aufgabe erscheint beim Ausbilder zur Abnahme
  • ✓ Der Ausbilder nimmt die Aufgabe ab
  • ✓ Für den Azubi ist die abgenommene Aufgabe gesperrt
  • ✓ Die Abnahme schlägt in der Rahmenplanabdeckung durch
  • ✓ Lücken im Lehrgang werden getrennt ausgewiesen

A6 · Rechte serverseitig

  • ✓ Der Azubi kommt nicht in die Verwaltung — HTTP 307

A7 · Berichtsheft

  • ✓ Der Azubi legt das Wochenblatt der laufenden Woche an
  • ✓ Ein Wochenblatt lässt sich öffnen
  • ✓ Das Wochenblatt kommt als PDF heraus — HTTP 200, 2649 Bytes

A8 · Sicherung zurückspielen

  • ✓ Die Sicherung läuft durch — lernbar-20261004-182433.tar.gz
  • ✓ Zum Beweis wird der Datenbestand beschädigt — 2 → 1 Konten
  • ✓ Die Rückspielung läuft durch — ohne Fehler
  • ✓ Der gelöschte Azubi ist wieder da — Tim Vogt
  • ✓ Auch der Lernverlauf kam mit zurück — 1 Einträge
  • ✓ Der überschriebene Stand wurde zur Seite gelegt, nicht gelöscht — verdraengt-20261004-182436

36 von 36 Prüfungen erfüllt.