Zum Inhalt springen
Erkenntnisse

Web-Sicherheit: XSS, CSRF und sichere Eingabeverarbeitung

Cyberangriffe auf Webseiten werden täglich häufiger. Mit bewährten Sicherheitsmaßnahmen können Sie sich und Ihre Nutzer vor den meisten Attacken schützen.

1. Die größten Web-Security-Risiken

2. XSS (Cross-Site Scripting)

Was ist XSS?

Ein Angreifer injiziert bösen JavaScript-Code in Ihre Seite, der dann im Browser der Nutzer ausgeführt wird. Das kann Cookies stehlen, Formulare manipulieren oder Schadsoftware installieren.

Sichere Lösungen:

1. HTML-Escaping verwenden

Alle Benutzer-Eingaben müssen vor der Ausgabe escaped werden. Das bedeutet: < wird zu &lt;, > wird zu &gt;, etc.

2. textContent statt innerHTML

JavaScript: Nutze textContent statt innerHTML. textContent escaped automatisch alle HTML-Tags.

3. Content Security Policy (CSP)

CSP ist ein HTTP-Header, der dem Browser mitteilt, welche Ressourcen geladen werden dürfen. So werden inline Scripts automatisch blockiert.

3. CSRF (Cross-Site Request Forgery)

Was ist CSRF?

Ein Angreifer verleitet Sie, ein Formular ohne Ihr Wissen abzuschicken. Zum Beispiel könnte eine Seite im Hintergrund ein Formular abschicken, das in Ihrem Namen Geld überweist.

Lösung: CSRF-Token

Der Server generiert einen einzigartigen Token für jeden Nutzer. Formulare müssen diesen Token enthalten. Der Server validiert den Token vor der Verarbeitung. Angreifer kennen den Token nicht, daher funktioniert der Angriff nicht.

Zusätzlich: SameSite Cookie-Attribut

Das SameSite-Attribut verhindert, dass Cookies an Cross-Site-Requests gesendet werden. Das macht CSRF-Attacken schwächer, aber nicht unmöglich.

4. SQL-Injection

Was ist SQL-Injection?

Angreifer fügen SQL-Befehle in Formulareingaben ein, um Datenbank-Operationen zu manipulieren. Zum Beispiel: Ein Angreifer gibt admin' -- als Benutzernamen ein und wird ohne Passwort angemeldet.

Lösung: Prepared Statements

Benutzer-Eingaben und SQL-Code müssen getrennt behandelt werden. Dies wird durch Prepared Statements (parameterisierte Queries) erreicht. Die Datenbank weiß dann, dass die Eingabe Daten ist, nicht SQL-Code.

5. Input-Validierung

Client-Side Validierung (HTML5)

HTML5 bietet eingebaute Validierung:

Server-Side Validierung (MUSS sein!)

Client-Side Validierung ist nur für Benutzerkomfort. Ein Angreifer kann diese umgehen. Der Server muss ALLE Eingaben validieren!

6. Sichere HTTP-Header

Content Security Policy (CSP)

Teilt dem Browser mit, welche Ressourcen geladen dürfen: Inline Scripts werden blockiert, externe Scripts nur von trusted.com, etc.

Strict-Transport-Security (HSTS)

Erzwingt HTTPS für alle zukünftigen Anfragen. Verhindert Man-in-the-Middle-Attacken.

X-Frame-Options

Schützt vor Clickjacking (unsichtbare Frames mit Schad-Inhalten). Wert: DENY oder SAMEORIGIN

X-Content-Type-Options: nosniff

Verhindert MIME-Type Sniffing. Der Browser nutzt den Content-Type Header, nicht Datei-Erkennung.

7. Beste Praktiken – DO's und DON'Ts

DO – Sicherheits-Maßnahmen:

DON'T – Häufige Fehler:

8. Sicherheits-Checkliste

9. Tools & Ressourcen

Sicherheits-Scanner:

Informationen:

10. Fazit

Web-Sicherheit ist ein fortlaufender Prozess. Es gibt kein 100% Schutz, aber mit bewährten Maßnahmen können Sie die meisten Risiken minimieren. Bleiben Sie informiert, halten Sie Ihre Software aktuell und validieren Sie IMMER Benutzer-Eingaben.

Zurück zu Erkenntnisse

Konnte ich Sie von meiner Erfahrung überzeugen?

Starten Sie Ihre Reise zu erfolgreichen Web- & Softwarelösungen mit mir.

Jetzt unverbindlich anfragen
Christian Hörzer

Kundenbewertungen

★★★★★
5.0 aus 24 Bewertungen
Alle Bewertungen anzeigen