
Web Security with Python
Nimm einen funktionierenden Webdienst und mach ihn schwer zu missbrauchen. Du speicherst Passwörter so, dass ein Datenleck sie nicht verrät, führst Sessions und signierte Tokens, die sich nicht fälschen lassen, validierst, was eine Anfrage verlangen darf, stoppst Cross-Site-Anfragen, beantwortest CORS korrekt, weil du weißt, was ein Browser prüft, und hältst geheime Schlüssel aus deinem Quellcode heraus. Du führst jeden Angriff gegen deinen eigenen Server aus und beweist jede Behebung mit einem Test.
Zuerst brauchst du HTTP with Python: eine JSON-API, geschrieben als Funktion handle(request, state), Cookies und eine serverseitige Session, Basic- und Bearer-Authentifizierung sowie Tests, die den Handler direkt aufrufen. Python Fundamentals II hilft, ist aber keine Voraussetzung: Du liest ein paar Klassen und schreibst nie selbst eine.
Jeder Angriff zielt auf deinen eigenen Code, auf der Loopback-Adresse oder im Speicher; die Sandbox hat kein Internet und keinen Browser. Die Browserregeln hinter CSRF und CORS sind ein kleines Modell, das du selbst schreibst. Ein Projekt, die Leseliste aus HTTP with Python, wird bis zum Abschlussprojekt abgesichert.
12
Kapitel
64
Lektionen
33
Übungen
13
Projekte
Die Lektionen sind in einer empfohlenen Reihenfolge angeordnet, du kannst aber jede Lektion öffnen.
Kapitel 1
Was schiefgehen kann
Kapitel 2
Hashes, MACs und Zufallswerte
Kapitel 3
Passwörter sicher speichern
Kapitel 4
Sessions, die halten
Kapitel 5
Signierte Tokens und geheime Schlüssel
Kapitel 6
Wer was darf, und wie oft
Kapitel 7
Eingaben, die zu Code werden
- Nimm nur an, was du erwartestÜbung
- Begrenze und normalisiere jedes FeldÜbung
- Daten, die als Anweisungen gelesen werden
- Halte einen Zeilenumbruch aus einem Header herausÜbung
- Leite nur auf deine eigene Site weiterÜbung
- Halte einen Dateinamen in seinem OrdnerÜbung
- Setz Text in eine Seite, kein MarkupÜbung
- Projekt: Nichts kommt ungeprüft durchAbschlussprojekt
Kapitel 8
Origins und Cross-Site-Anfragen
- Der Browser, den du gleich modellierst
- Origins und SitesÜbung
- Welche Cookies mitgehenÜbung
- Senden ist nicht Lesen
- Eine Anfrage von einer Nachbar-Site fälschenÜbung
- Ein Token, das die andere Seite nicht kennen kannÜbung
- SameSite und der Header OriginÜbung
- Projekt: Anfragen von woandersAbschlussprojekt
Kapitel 9
CORS
Kapitel 10
HTTPS, Zertifikate und Sicherheits-Header
Kapitel 11
Abschlussprojekt: Härte die Leseliste
Kapitel 12