Grundlagen · Web

Webtechnologien für Cybersecurity verstehen

Web Security funktioniert nicht ohne ein klares Bild davon, wie HTTP, HTML, JavaScript, Cookies und APIs zusammenspielen. Dieser Guide legt dieses Fundament - auf einsteigerfreundlichem Niveau, mit dem Fokus auf das, was für Security wirklich zählt.

Inhaltsverzeichnis16 Abschnitte

Warum Web-Grundlagen Pflicht für Web Security sind

Web Security ist heute das zentrale Thema in der offensiven und defensiven IT-Sicherheit. OWASP Top 10, Bug Bounty, Pentesting, SOC-Arbeit - überall stehen Webanwendungen im Mittelpunkt. Wer die Grundlagen nicht kennt, behandelt Symptome, ohne die Ursache zu verstehen.

Ein einfaches Beispiel: Ein Pentester sieht in Burp Suite einen Request mit einem Set-Cookie-Header ohne HttpOnly-Flag. Wer nicht weiß, was das bedeutet, scrollt drueber weg. Wer es weiß, erkennt ein potenzielles Session-Hijacking-Risiko - und kann es im Bericht dokumentieren.

Die gute Nachricht: Du musst kein Frontend-Entwickler werden. Lese-Verständnis genügt. Dieser Guide zeigt genau, was du wissen musst - und was du getrost weglassen kannst.

  • HTTP ist die Sprache, in der Browser und Server sprechen - du musst sie lesen können
  • Cookies und Sessions sind die Schicht, auf der Authentifizierung basiert
  • HTML und JavaScript bestimmen, was im Browser passiert - und wo XSS entsteht
  • APIs sind der Hauptangriffspunkt moderner Webanwendungen
  • Statuscodes, Header und Body sind die Rohdaten jeder Web-Analyse

Browser, Server, Request und Response

Hinter jedem Klick auf einen Link steckt ein strukturierter Ablauf. Wer ihn Schritt für Schritt kennt, versteht, wo Angriffe ansetzen können.

  1. 1DNS-Aufloesung: Der Browser fragt einen DNS-Server nach der IP-Adresse der Domain (z.B. example.com93.184.216.34).
  2. 2TCP-Verbindung: Browser und Server etablieren eine TCP-Verbindung (Three-Way-Handshake: SYN, SYN-ACK, ACK).
  3. 3TLS-Handshake (bei HTTPS): Zertifikat wird geprüft, ein gemeinsamer Sitzungsschlüssel wird vereinbart, ab jetzt ist alles verschlüsselt.
  4. 4HTTP-Request: Der Browser sendet den Request (z.B. GET /login HTTP/1.1) mit Headern wie Host, Cookie, User-Agent.
  5. 5Server-Verarbeitung: Webserver (z.B. nginx) und Applikation (z.B. Node.js, Python) verarbeiten die Anfrage, lesen ggf. aus einer Datenbank.
  6. 6HTTP-Response: Der Server antwortet mit einem Statuscode (z.B. 200 OK), Response-Headern und einem Body (HTML, JSON usw.).
  7. 7Rendering: Der Browser parst HTML, lädt CSS und JavaScript nach, baut den DOM auf und zeigt die Seite an.

Jeder dieser Schritte ist ein potenzieller Angriffspunkt: DNS kann vergiftet werden, TLS-Zertifikate können gefaelscht sein, HTTP-Header können fehlen, Applikationslogik kann Lücken haben.

HTTP verständlich erklärt

HTTP (HyperText Transfer Protocol) ist das zustandslose Anfrage-Antwort-Protokoll des Webs. Jeder Request ist unabhaengig - der Server "erinnert" sich standardmäßig nicht an vorherige Anfragen. Cookies und Sessions sind der Mechanismus, der diesen Zustand kuenstlich herstellt.

HTTP-Methoden

MethodeBedeutungSecurity-Hinweis
GETRessource abrufenParameter in URL sichtbar; nie sensible Daten in GET-Parametern
POSTDaten senden / Ressource erstellenDaten im Body; trotzdem HTTPS nötig, Body ist nicht "unsichtbar"
PUTRessource vollständig ersetzenAutorisierungsprüfung essentiell - wer darf ersetzen?
PATCHRessource teilweise aktualisierenMass-Assignment-Risiko wenn keine Feldfilterung
DELETERessource löschenIDOR-Risiko: darf dieser User das Objekt löschen?

Header und Body

Ein HTTP-Request besteht aus drei Teilen: der Startzeile (Methode, Pfad, HTTP-Version), Headern (Schlüsselpaar-Metadaten) und einem optionalen Body (Daten, z.B. JSON oder Formulardaten). Der Response hat dieselbe Struktur: Statuszeile, Header, Body.

Sicherheitsrelevante Request-Header: Authorization (traegt Token oder Basic-Auth), Cookie (Sitzungscookies), Origin (CORS-Herkunft), Content-Type (Dateiformat des Body). Response-Header wie Set-Cookie, Content-Security-Policy und Strict-Transport-Security steuern den Browser-Verhalten direkt.

HTML, CSS, JavaScript einordnen

Webanwendungen bestehen aus drei Schichten, die jeweils unterschiedliche Aufgaben haben - und unterschiedliche Security-Relevanz.

SchichtAufgabeSecurity-Relevanz
HTMLStruktur und Inhalt der SeiteFormulare, Links, Eingabefelder - der Hauptvektor für Injection-Angriffe
CSSDarstellung und LayoutWeniger kritisch; kann für Clickjacking oder UI-Redressing missbraucht werden
JavaScriptVerhalten und dynamische InteraktionLäuft im Browser des Nutzers - XSS-Angriffe injizieren fremden JS-Code

XSS (Cross-Site Scripting) - defensiv verstehen: Wenn eine Webanwendung Nutzereingaben ungefiltert in HTML ausgibt, kann schadhafter JavaScript-Code im Browser eines anderen Nutzers ausgeführt werden. Beispiel: Ein Kommentarfeld gibt <script>alert(1)</script> ungefiltert aus. Die Verteidigung besteht in Output-Encoding (z.B. < statt <) und einer strengen Content Security Policy. Das Konzept zu kennen hilft, beim Code-Review oder im Lab entsprechende Muster zu erkennen.

HTTP-Statuscodes lesen

Statuscodes sind dreistellige Zahlen im HTTP-Response. Sie sagen, ob eine Anfrage erfolgreich war, wohin umgeleitet werden soll oder warum etwas fehlgeschlagen ist. In Burp Suite, DevTools und Logs sind sie die erste Orientierung.

CodeBedeutungSecurity-Relevanz
200OKAnfrage erfolgreich; bei Zugriffsendpoints: zeigt an, dass der Zugriff gewaehrt wurde
201CreatedRessource wurde angelegt; wichtig bei POST-Endpoints (ungewollte Erstellung durch CSRF?)
301Moved PermanentlyPermanente Weiterleitung; Open Redirect wenn Ziel-URL aus Input kommt
302FoundTemporaere Weiterleitung; Login-Redirects oft hier; gleiche Open-Redirect-Gefahr
304Not ModifiedCache noch gültig; kein Body; Cache-Poisoning-Risiko bei fehlerhaftem Caching
400Bad RequestUngueltige Anfrage; Hinweis auf fehlende Input-Validierung oder fehlerhafte Payloads
401UnauthorizedKeine gueltigen Credentials; Brute-Force-Erkennung sollte hier greifen
403ForbiddenAuthentifiziert, aber nicht autorisiert; IDOR-Tests prüfen ob 403 wirklich erzwungen wird
404Not FoundRessource nicht gefunden; bei Endpoint-Enumeration sagt 404 vs. 403 viel aus
500Internal Server ErrorServerfehler; kann auf Injection-Erfolg oder unerwarteten Input hindeuten - wichtiger Fuzzing-Indikator

Cookies und Sessions

Da HTTP zustandslos ist, braucht es einen Mechanismus, um Nutzer über mehrere Requests hinweg zu erkennen. Cookies erledigen das: Der Server setzt ein Cookie per Set-Cookie-Header, der Browser sendet es bei jedem weiteren Request automatisch mit. Sessions speichern den eigentlichen Zustand serverseitig; das Cookie enthält nur eine Session-ID.

Cookie-Attribute und ihre Schutzwirkung

AttributBedeutungDefensive Wirkung
HttpOnlyCookie nicht per JavaScript lesbarVerhindert, dass XSS das Session-Cookie stiehlt
SecureCookie nur über HTTPS gesendetVerhindert Mitlesen bei unverschluesselten Verbindungen
SameSite=StrictCookie nur bei Same-Origin-Requests gesendetStarker Schutz gegen CSRF-Angriffe
SameSite=LaxCookie bei Top-Level-Navigation erlaubtModerater CSRF-Schutz; Browser-Standard seit 2021
SameSite=NoneCookie bei Cross-Origin-Requests erlaubtKein CSRF-Schutz; nur mit Secure sinnvoll; Risiko bewusst einsetzen
Expires / Max-AgeLebensdauer des CookiesKurze Lebensdauer reduziert Angriffsfenster bei gestohlenen Tokens

Authentifizierung vs. Autorisierung & Login-Flows

Zwei Begriffe, die häufig verwechselt werden, aber grundverschiedene Konzepte sind:

  • Authentifizierung (AuthN): Wer bist du? - Pruefe die Identität (Passwort, Token, Zertifikat)
  • Autorisierung (AuthZ): Was darfst du? - Pruefe die Berechtigung nach erfolgreicher Identifikation

Typischer Login-Ablauf mit Session-Cookie:

  1. Nutzer sendet POST-Request mit Benutzername und Passwort
  2. Server prüft Credentials gegen Datenbank (Passwort-Hash)
  3. Bei Erfolg: Server erzeugt Session-ID, speichert sie serverseitig, sendet sie als Cookie an den Browser
  4. Browser sendet Cookie bei jedem weiteren Request automatisch mit
  5. Server prüft Session-ID, lädt zugehörige Nutzerdaten, entscheidet über Autorisierung

JWT (JSON Web Token) als Alternative: Statt einer Session-ID auf dem Server wird ein signiertes Token an den Client gegeben, das alle relevanten Informationen enthält. Vorteil: Server muss keinen Zustand halten. Nachteil: Token-Invalidierung ist komplex; Implementierungsfehler (z.B. schwache Signaturen, fehlende Prüfung des alg-Headers) können kritisch sein.

Formulare, APIs und JSON

Moderne Webanwendungen kommunizieren meist über REST-APIs. Statt HTML-Formulare direkt an den Server zu senden, schickt JavaScript Daten als JSON per fetch()-API - und verarbeitet die JSON-Antwort, ohne die Seite neu zu laden.

REST-Grundidee: Ressourcen (z.B. /api/users/42) werden per HTTP-Methoden manipuliert: GET zum Lesen, POST zum Erstellen, PATCH zum Ändern, DELETE zum Löschen. Jede URL repraesentiert eine Ressource.

Input-Validierung: Jeder Wert, der vom Nutzer kommt - Formularfelder, URL-Parameter, JSON-Body-Felder - muss serverseitig validiert werden. Client- seitige Validierung (z.B. per HTML-required) ist kein Schutz, sondern nur UX. Ein Angreifer mit Burp Suite umgeht sie trivial.

Output-Encoding: Bevor Nutzerdaten in HTML ausgegeben werden, müssen Sonderzeichen kodiert werden (z.B. < wird zu &lt;). Das ist der primaere Schutz gegen XSS. Beim Ausgeben in JSON-Kontexte, SQL-Queries oder Shell-Kommandos gelten andere Encoding-Regeln.

Begriffs-Tabelle für Web-Security-Einsteiger

Diese Begriffe begegnen dir in jedem Web-Security-Kontext. Wer sie verinnerlicht hat, liest Writeups, CVEs und Lab-Aufgaben viel schneller.

BegriffBedeutungBeispiel
RequestAnfrage vom Client an den ServerBrowser lädt eine Seite; Burp Suite sendet einen modifizierten POST
ResponseAntwort des Servers auf einen Request200 OK mit HTML-Body; 401 Unauthorized
HeaderMetadaten in Request oder ResponseAuthorization: Bearer token123
CookieKleines Datenstück, das der Browser automatisch mitsendetsession_id=abc123
SessionServerseitig gespeicherter NutzerzustandNach Login wird Session-ID im Cookie gespeichert
APISchnittstelle für maschinelle KommunikationGET /api/users/42 liefert JSON
StatuscodeDreistelliger Code im Response403 bedeutet: authentifiziert, aber nicht berechtigt
Origin / CORSHerkunft einer Anfrage (Schema + Host + Port)https://example.com ist eine Origin; CORS erlaubt Cross-Origin-Zugriffe per Header

Verbindung zu Burp Suite, PortSwigger Academy und Web-Security-Labs

Alles, was in diesem Guide erklärt wurde, wird in der Praxis mit Burp Suite sichtbar gemacht. Burp Suite Community Edition ist kostenlos und funktioniert als HTTP-Proxy: Jeder Request und Response läuft durch Burp, wird angezeigt und kann manipuliert werden.

  • Burp Proxy zeigt alle HTTP-Requests in Echtzeit - Header, Body, Cookies sichtbar
  • Repeater erlaubt das Wiederholen und Modifizieren einzelner Requests
  • Intruder automatisiert Fuzzing und Brute-Force in eigenen legalen Labs
  • PortSwigger Web Security Academy bietet kostenlose Labs zu allen großen Schwachstellenklassen
  • Jedes Lab in der Academy setzt genau das Wissen aus diesem Guide voraus

Die PortSwigger Academy (portswigger.net/web-security) ist der empfohlene Einstiegspunkt. Die Labs sind nach Schwierigkeit gestaffelt, die Erklärungen sind detailliert und auf dem Stand der Technik. Wer hier methodisch vorgeht, erreicht in wenigen Wochen ein solides Web-Security-Fundament.

Typische Missverständnisse von Einsteigern

Diese Denkfehler kosten Zeit und führen zu blinden Flecken - fruehzeitig ausräumen spart spätere Frustration.

FehlerWarum problematischBesserer Ansatz
"HTTPS bedeutet sicher"HTTPS verschlüsselt nur den Transport, nicht die ApplikationslogikHTTPS + sichere Applikation + korrekte Header = Schutz
"POST-Daten sind unsichtbar"POST-Body ist in Burp Suite sofort lesbar und aenderbarAlle Nutzerdaten serverseitig validieren, unabhaengig von der HTTP-Methode
"Client-seitige Validierung reicht"JavaScript lässt sich umgehen; Burp Suite sendet beliebige Daten direktImmer serverseitige Validierung als einzige verlassliche Schicht
"401 und 403 sind dasselbe"401 = nicht eingeloggt; 403 = eingeloggt aber keine Berechtigung - unterschiedliche AngriffsvektorenStatuscodes korrekt lesen und gezielt auf IDOR (403 umgehen) testen
"Cookies sind privat"Ohne HttpOnly kann XSS Cookies lesen; ohne Secure werden sie im Klartext übertragenHttpOnly, Secure, SameSite konsequent setzen
"Testen auf fremden Seiten ist ok zum Lernen"Unbefugtes Testen ist strafbar - auch wenn keine Schaeden entstehenNur legale Labs: Juice Shop, DVWA, PortSwigger Academy, TryHackMe
"SameSite=Lax verhindert alle CSRF-Angriffe"Lax hat Ausnahmen; ältere Browser unterstützen es nicht; Strict ist sichererSameSite=Strict kombiniert mit CSRF-Token für sensible Endpunkte

Lernziele

Nach dieser Seite solltest du verstehen

  • Wie der vollständige Lebenszyklus eines HTTP-Requests abläuft
  • Was HTTP-Methoden, Header und Statuscodes bedeuten und wie man sie liest
  • Welche Schicht HTML, CSS und JavaScript jeweils abdecken und warum JavaScript sicherheitskritisch ist
  • Wie Cookies und Sessions funktionieren und welche Flags sie schützen
  • Den Unterschied zwischen Authentifizierung und Autorisierung
  • Was REST-APIs sind und warum Input-Validierung serverseitig sein muss
  • Wozu Burp Suite und die PortSwigger Academy dienen und wie sie sich auf dieses Wissen stützen
  • Welche Denkfehler Einsteiger typisch machen - und wie man sie vermeidet

Praxisbezug

Richte OWASP Juice Shop oder DVWA lokal per Docker ein. Öffne danach die Browser-DevTools (F12) und wechsle zum Netzwerk-Tab. Navigiere durch die Anwendung und beobachte jeden Request: Welche Methode? Welche Header? Welcher Statuscode? Was steht im Cookie? Danach installiere Burp Suite Community Edition als Proxy - jetzt siehst du dieselben Requests nochmals, kannst sie pausieren, verändern und wiederholen. Alles im eigenen Lab, völlig legal.

Nächste Lernschritte

FAQ

Muss ich HTML, CSS und JavaScript erst richtig lernen, bevor ich Web Security angehe?

+

Nicht auf Entwickler-Niveau. Du brauchst ein Lese-Verständnis: Was macht ein HTML-Formular? Was passiert, wenn JavaScript im Browser ausgeführt wird? Wie baut eine Seite ihren DOM auf? Das reicht für den Einstieg. Frameworks wie React oder Vue brauchst du für Web Security nicht zwingend.

Brauche ich JS-Framework-Kenntnisse für Web Security?

+

Nein. Vanilla-JavaScript-Lese-Verständnis genügt. Wichtiger ist zu wissen, wie der Browser Code ausführt, was das DOM ist und wie Daten per fetch() oder XMLHttpRequest an einen Server gehen. Framework-Kenntnisse sind ein Bonus, kein Pflichtprogramm.

Was sind die wichtigsten HTTP-Header für Security?

+

Auf der defensiven Seite: Content-Security-Policy (XSS-Schutz), Strict-Transport-Security (erzwingt HTTPS), X-Frame-Options (Clickjacking), X-Content-Type-Options (MIME-Sniffing), Referrer-Policy und Permissions-Policy. Im Request sind Authorization, Cookie und Origin sicherheitsrelevant. Burp Suite zeigt alle Header eines Requests auf einen Blick.

Was ist CORS einfach erklärt?

+

CORS steht für Cross-Origin Resource Sharing. Standardmäßig darf JavaScript im Browser nur Ressourcen von derselben Origin (gleiches Schema, Host, Port) abrufen - das nennt sich Same-Origin Policy. CORS ist ein Mechanismus, mit dem Server per Header (Access-Control-Allow-Origin) explizit Ausnahmen erlauben. Falsch konfiguriertes CORS kann Angriffsvektoren eröffnen.

Wie hängt das alles mit Burp Suite zusammen?

+

Burp Suite sitzt als Proxy zwischen deinem Browser und dem Server. Jeder Request, jeder Response - mit allen Headern, Cookies und Body-Daten - wird abgefangen und angezeigt. Wer HTTP versteht, kann in Burp gezielt Requests manipulieren, wiederholen und auf Schwachstellen testen. Ohne HTTP-Grundlagen ist Burp ein Black Box.

Wo kann ich Web Security legal üben?

+

PortSwigger Web Security Academy (portswigger.net/web-security) ist kostenlos und didaktisch hervorragend. OWASP Juice Shop läuft lokal per Docker und bietet absichtlich verwundbare Szenarien. DVWA (Damn Vulnerable Web App) ist ähnlich. TryHackMe und HackTheBox haben dedizierte Web-Pfade. Niemals an fremden Live-Systemen ohne schriftliche Erlaubnis.