O'Reilly logo

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

Java-Web-Security

Book Description

Java-Entwickler lernen in diesem Buch, wie sie sichere Java-Webapplikationen entwickeln und die Anzahl sicherheitskritischer Programmierfehler in ihrer Software möglichst auf null reduzieren. Dominik Schadow zeigt Ihnen dazu typische Probleme in Webapplikationen – u.a. Cross Site-Scripting und Cross Site-Request Forgery – und erläutert, wie diese ausgenutzt werden können. Anschließend lernen Sie anhand von Codebeispielen, wie Sie diese Probleme vermeiden und Ihre Java-Webapplikation damit bedeutend sicherer machen.

Table of Contents

  1. Inhaltsverzeichnis
    1. 1 Einleitung
      1. 1.1 Über dieses Buch
      2. 1.2 Zielgruppe und Voraussetzungen
      3. 1.3 Webanwendungen
      4. 1.4 Abgrenzung
      5. 1.5 Der Quellcode zum Buch
      6. 1.6 Aufbau des Buches
      7. 1.7 Danksagungen
  2. 2 Sicherheit von Anfang an
    1. 2.1 Forderung nach Sicherheit
    2. 2.2 Warum ist sichere Software wichtig?
    3. 2.3 Wer muss sicher entwickeln?
    4. 2.4 Sicherheit in allen Phasen
    5. 2.5 Veränderungen im Entwicklungsprozess
      1. 2.5.1 Klärung der notwendigen Sicherheitsanforderungen
      2. 2.5.2 Risikoanalyse
      3. 2.5.3 Sicherheit einplanen
      4. 2.5.4 Code-Reviews
      5. 2.5.5 Ganzheitliche Sicherheit
    6. 2.6 Der Preis der Sicherheit
    7. 2.7 Sichere Webapplikationen entwickeln
      1. 2.7.1 Altapplikationen absichern
      2. 2.7.2 Web Application Firewalls
    8. 2.8 Absolute Sicherheit gibt es nicht
    9. 2.9 Auf einen Blick
  3. 3 Java ist doch schon sicher?!
    1. 3.1 Grundlagen
    2. 3.2 Java-Features rund um die Sicherheit
    3. 3.3 Was Java nicht leisten kann
    4. 3.4 Welche Java-Versionen sind betroffen?
    5. 3.5 Sichere Entwicklung mit Java
      1. 3.5.1 Open Web Application Security Project
      2. 3.5.2 CWE/SANS
    6. 3.6 Auf einen Blick
  4. 4 Java-Security-Basics
    1. 4.1 Security-Frameworks
      1. 4.1.1 Enterprise Security API
      2. 4.1.2 Coverity Security Library
      3. 4.1.3 Korrekte Verwendung
    2. 4.2 Input-Validierung
      1. 4.2.1 Threat Modeling
      2. 4.2.2 Validierungsregeln
      3. 4.2.3 Validierung aller Benutzereingaben
      4. 4.2.4 Validierung in Frontend und Backend
      5. 4.2.5 Frameworks
    3. 4.3 Output-Escaping
      1. 4.3.1 Grundlagen
      2. 4.3.2 Frameworks
    4. 4.4 Fehlerbehandlung
    5. 4.5 Auf einen Blick
      1. 4.5.1 Beispielprojekte
      2. 4.5.2 Checkliste
  5. 5 Session-Management mit Java
    1. 5.1 Grundlagen
      1. 5.1.1 Frühzeitige Klärung der Anforderungen
      2. 5.1.2 Transportsicherheit
    2. 5.2 Session-Handling und Session-ID
      1. 5.2.1 Session-Fixation
      2. 5.2.2 HTTP Strict Transport Security
      3. 5.2.3 Cookies
      4. 5.2.4 Sessiondaten im Cookie speichern
      5. 5.2.5 Vollständige Konfiguration der web.xml
    3. 5.3 Authentifizierung und Autorisierung
      1. 5.3.1 Presentation Layer Access Control
      2. 5.3.2 Anwendungen für Benutzer und Administratoren
    4. 5.4 Verwendung von Frameworks
    5. 5.5 Auf einen Blick
      1. 5.5.1 Beispielprojekte
      2. 5.5.2 Checkliste
  6. 6 Injections
    1. 6.1 Grundlagen
    2. 6.2 SQL Injection
      1. 6.2.1 Was kann passieren?
      2. 6.2.2 Wie läuft ein Angriff ab?
      3. 6.2.3 Was können Sie dagegen tun?
    3. 6.3 Weitere Injections
      1. 6.3.1 XPath Injection
      2. 6.3.2 Log Injection
    4. 6.4 Auf einen Blick
      1. 6.4.1 Beispielprojekte
      2. 6.4.2 Checkliste
  7. 7 Cross-Site Scripting (XSS)
    1. 7.1 Grundlagen
    2. 7.2 Was kann passieren?
    3. 7.3 Wie läuft ein Angriff ab?
      1. 7.3.1 Stored XSS
      2. 7.3.2 Reflected XSS
      3. 7.3.3 DOM Based XSS
    4. 7.4 Was können Sie dagegen tun?
      1. 7.4.1 Session-Informationen schützen
      2. 7.4.2 Input-Validierung
      3. 7.4.3 Output-Escaping
      4. 7.4.4 Content Security Policy (CSP)
      5. 7.4.5 Browsererkennung von XSS
    5. 7.5 Auf einen Blick
      1. 7.5.1 Beispielprojekte
      2. 7.5.2 Checkliste
  8. 8 Cross-Site Request Forgery (CSRF)
    1. 8.1 Grundlagen
    2. 8.2 Was kann passieren?
    3. 8.3 Wie läuft ein Angriff ab?
    4. 8.4 Was können Sie dagegen tun?
      1. 8.4.1 Begrenzung der Sessiondauer
      2. 8.4.2 Formulare per HTTP POST übertragen
      3. 8.4.3 Captchas
      4. 8.4.4 Verwendung eines Anti-CSRF-Tokens
    5. 8.5 Kombination von CSRF- und XSS-Angriffen
    6. 8.6 Auf einen Blick
      1. 8.6.1 Beispielprojekte
      2. 8.6.2 Checkliste
  9. 9 Tools
    1. 9.1 Codeanalyse und Codequalität
      1. 9.1.1 Überblick
      2. 9.1.2 FindBugs
      3. 9.1.3 PMD
      4. 9.1.4 OWASP Dependency Check
      5. 9.1.5 Weitere Tools
    2. 9.2 Analyse und Training
      1. 9.2.1 Überblick
      2. 9.2.2 OWASP ZAP
      3. 9.2.3 OWASP Security Shepherd
      4. 9.2.4 OWASP Broken Web Applications Project
      5. 9.2.5 Weitere Tools
    3. 9.3 Auf einen Blick
      1. 9.3.1 Checkliste
  10. 10 Ausblick
    1. 10.1 Was Sie jetzt beherrschen
    2. 10.2 Weitere Themen
    3. 10.3 Nächste Schritte
      1. 10.3.1 Security Testing
      2. 10.3.2 Security Reviews
      3. 10.3.3 Security Development Lifecycle
    4. 10.4 Fazit
  11. Anhänge
    1. A CSRF und Webservices
    2. B Weitere Security-Frameworks
      1. B.1 Spring Security
      2. B.2 Apache Shiro
    3. C Abkürzungen
    4. Literatur – offline und online
    5. Index