Sessions, Authentifizierung und Autorisierung
"Loginzustand sicher vom Zugriff auf Ressourcen unterscheiden."
Konzepte verständlich erklärt (für Einsteiger jeden Alters)
Lernziele
Loginzustand sicher vom Zugriff auf Ressourcen unterscheiden. Nach dieser Lektion kannst du das Konzept erklären, ein kleines Beispiel umsetzen und typische Grenzen benennen.
Erklärung
Authentifizierung beantwortet „Wer bist du?“, Autorisierung „Was darfst du?“. Eine Session hält serverseitigen Zustand; ein zufälliges Cookie verweist darauf. Cookies brauchen sichere Attribute wie HttpOnly, Secure und angemessenes SameSite. Passwörter werden mit geeignetem Passwort-Hashing gespeichert, nie im Klartext.
Schrittweises Beispiel
Nach erfolgreichem Login rotiert die Anwendung die Session-ID. Jede sensible Route prüft die Berechtigung für genau das angeforderte Objekt, nicht nur, ob ein Nutzer eingeloggt ist.
def can_edit(user_id, owner_id):
return user_id is not None and user_id == owner_id
print(can_edit(7, 7))
Zusammenfassung
Prüfe Identität und Berechtigung serverseitig für jede geschützte Aktion.
Lerncheck & Übung
Etwa 35 Minuten · intermediate
Das lernst du
- Erkläre die Kernidee von „Sessions, Authentifizierung und Autorisierung“ in eigenen Worten.
- Wähle eine passende Technik für einen konkreten Anwendungsfall.
- Erkenne mindestens eine typische Fehlerquelle.
Voraussetzungen
- Keine Zugriffsvoraussetzungen. Vorwissen wird in der Erklärung eingeführt.
Häufige Fehler
- Eine versteckte Schaltfläche ist keine Autorisierung. Session-Fixation, CSRF und vorhersehbare Tokens sind reale Risiken. HTTPS schützt Cookies während des Transports.
Wissenscheck
Praktische Aufgabe
Schreibe eine Prüfung, die Eigentümerzugriff erlaubt und Fremdzugriff ablehnt.
Quellen und Einordnung
Prüfe meine Erklärung zu „Sessions, Authentifizierung und Autorisierung“: Nenne eine fehlende Annahme und stelle mir eine Gegenfrage.
Interaktive Übung & lokaler Testlauf
Schreibe eine Prüfung, die Eigentümerzugriff erlaubt und Fremdzugriff ablehnt.
Hinweise auf Wunsch anzeigen
- Zerlege die Aufgabe in Eingabe, Verarbeitung und erwartete Ausgabe.
- Prüfe auch einen leeren oder ungültigen Fall.