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

PHP-Sicherheit: PHP/MySQL-Webanwendungen sicher programmieren

Book Description

PHP gilt mittlerweile als die beliebteste Skriptsprache für Webanwendungen. Leider werden Sicherheitsaspekte bei der PHP-Entwicklung oft vernachlässigt. Dies führt leicht zu massiven Sicherheitsproblemen und ist dann für kompromittierte Server und verunstaltete Webseiten verantwortlich. Wie man solche Risiken erkennen und abwehren kann, zeigt dieses Buch.

An nachvollziehbaren Beispielen lernen die Leser alle wichtigen Gefahren kennen, u.a.:

  • SQL-Injection

  • Cross-Site Scripting

  • Angriffe gegen Sessions

  • Angriffe auf Upload-Formulare

  • Cross-Site Request Forgery

  • HTTP Response Splitting

These links have been provided by the publisher.

Table of Contents

  1. PHP-Sicherheit
    1. Copyright
    2. Danksagungen
    3. Inhaltsverzeichnis (1/2)
    4. Inhaltsverzeichnis (2/2)
    5. 1: Einleitung
      1. 1.1 Über dieses Buch
      2. 1.2 Was ist Sicherheit?
      3. 1.3 Wichtige Begriffe
      4. 1.4 Sicherheitskonzepte
      5. 1.5 ISO 17799
      6. 1.6 Wie verkaufe ich Sicherheit?
      7. 1.7 Wichtige Informationsquellen
      8. 1.8 OWASP
      9. 1.9 PHP-Sicherheit.de
    6. 2: Informationsgewinnung
      1. 2.1 Grundlagen
      2. 2.2 Webserver erkennen
      3. 2.3 Betriebssystem erkennen
      4. 2.4 PHP-Installation erkennen
      5. 2.5 Datenbanksystem erkennen
      6. 2.6 Datei-Altlasten
      7. 2.7 Pfade
      8. 2.8 Kommentare aus HTML-Dateien
      9. 2.9 Applikationen erkennen
      10. 2.10 Default-User
      11. 2.11 Google Dork
      12. 2.12 Fazit
    7. 3: Parametermanipulation
      1. 3.1 Grundlagen
      2. 3.2 Werkzeuge zur Parametermanipulation
      3. 3.3 Angriffsszenarien und Lösungen (1/3)
      4. 3.3 Angriffsszenarien und Lösungen (2/3)
      5. 3.3 Angriffsszenarien und Lösungen (3/3)
      6. 3.4 Variablen richtig prüfen (1/2)
      7. 3.4 Variablen richtig prüfen (2/2)
      8. 3.5 register_globals
      9. 3.6 Fazit
    8. 4: Cross-Site Scripting
      1. 4.1 Grenzenlose Angriffe
      2. 4.2 Was ist Cross-Site Scripting?
      3. 4.3 Warum XSS gefährlich ist
      4. 4.4 Erhöhte Gefahr dank Browserkomfort
      5. 4.5 Formularvervollständigung verhindern
      6. 4.6 XSS in LANs und WANs
      7. 4.7 XSS – einige Beispiele
      8. 4.8 Ein klassisches XSS
      9. 4.9 Angriffspunkte für XSS
      10. 4.10 Angriffe verschleiern – XSS Cheat Sheet
      11. 4.11 Einfache Gegenmaßnahmen
      12. 4.12 XSS verbieten, HTML erlauben – wie? (1/2)
      13. 4.12 XSS verbieten, HTML erlauben – wie? (2/2)
      14. 4.13 Die Zwischenablage per XSS auslesen
      15. 4.14 XSS-Angriffe über DOM
      16. 4.15 XSS in HTTP-Headern
      17. 4.16 Attack API
      18. 4.17 Second Order XSS per RSS
      19. 4.18 Cross-Site Request Forgery (CSRF) (1/2)
      20. 4.18 Cross-Site Request Forgery (CSRF) (2/2)
    9. 5: SQL-Injection
      1. 5.1 Grundlagen
      2. 5.2 Auffinden von SQL-Injection-Möglichkeiten (1/2)
      3. 5.2 Auffinden von SQL-Injection-Möglichkeiten (2/2)
      4. 5.3 Syntax einer SQL-Injection (1/2)
      5. 5.3 Syntax einer SQL-Injection (2/2)
      6. 5.4 Advanced SQL-Injection
      7. 5.5 Schutz vor SQL-Injection
      8. 5.6 Fazit
    10. 6: Authentisierung und Authentifizierung
      1. 6.1 Wichtige Begriffe
      2. 6.2 Authentisierungssicherheit (1/4)
      3. 6.2 Authentisierungssicherheit (2/4)
      4. 6.2 Authentisierungssicherheit (3/4)
      5. 6.2 Authentisierungssicherheit (4/4)
      6. 6.3 Authentifizierungssicherheit
      7. 6.4 Spamvermeidung mit CAPTCHAs
      8. 6.5 Fazit
    11. 7: Sessions
      1. 7.1 Grundlagen
      2. 7.2 Permissive oder strikte Session-Systeme
      3. 7.3 Session-Speicherung
      4. 7.4 Schwache Algorithmen zur Session-ID-Generierung
      5. 7.5 Session-Timeout
      6. 7.6 Bruteforcing von Sessions
      7. 7.7 Session Hijacking
      8. 7.8 Session Fixation
      9. 7.9 Zusätzliche Abwehrmethoden
      10. 7.10 Fazit
    12. 8: Upload-Formulare
      1. 8.1 Grundlagen
      2. 8.2 Aufbau eines Upload-Formulars
      3. 8.3 PHP-interne Verarbeitung
      4. 8.4 Speicherung der hochgeladenen Dateien
      5. 8.5 Bildüberprüfung
      6. 8.6 PHP-Code in ein Bild einfügen
      7. 8.7 Andere Dateitypen überprüfen
      8. 8.8 Gefährliche Zip-Archive
      9. 8.9 Fazit
    13. 9: Variablenfilter mit ext/filter
      1. 9.1 Überblick
      2. 9.2 Installation
      3. 9.3 Die Filter-API
      4. 9.4 Verfügbare Filter
      5. 9.5 Zahlen prüfen und filtern
      6. 9.6 Boolesche Werte
      7. 9.7 URLs validieren
      8. 9.8 IP-Adressen prüfen
      9. 9.9 Syntaxcheck für E-Mail-Adressen
      10. 9.10 Reinigende Filter
      11. 9.11 Prüfung externer Daten
      12. 9.12 Callback-Funktionen
      13. 9.13 Fazit
    14. 10: PHP intern
      1. 10.1 Fehler in PHP
      2. 10.2 Bestandteile eines sicheren Servers
      3. 10.3 Unix oder Windows?
      4. 10.4 Bleiben Sie aktuell!
      5. 10.5 Installation
      6. 10.6 suExec
      7. 10.7 Safe Mode
      8. 10.8 Weitere PHP-Einstellungen
      9. 10.9 Code-Sandboxing mit runkit
      10. 10.10 Externe Ansätze (1/2)
      11. 10.10 Externe Ansätze (2/2)
      12. 10.11 Rootjail-Lösungen
      13. 10.12 Fazit
    15. 11: PHP-Hardening
      1. 11.1 Warum PHP härten?
      2. 11.2 Prinzipien hinter Suhosin
      3. 11.3 Installation
      4. 11.4 Zusammenarbeit mit anderen Zend-Extensions
      5. 11.5 Konfiguration (1/3)
      6. 11.5 Konfiguration (2/3)
      7. 11.5 Konfiguration (3/3)
      8. 11.6 Beispielkonfiguration
      9. 11.7 Fazit und Ausblick
    16. 12: Webserver-Filter für Apache
      1. 12.1 Einsatzgebiet von Filtermodulen
      2. 12.2 Blacklist oder Whitelist?
      3. 12.3 mod_security (1/5)
      4. 12.3 mod_security (2/5)
      5. 12.3 mod_security (3/5)
      6. 12.3 mod_security (4/5)
      7. 12.3 mod_security (5/5)
      8. 12.4 mod_parmguard (1/2)
      9. 12.4 mod_parmguard (2/2)
      10. 12.5 Fazit
    17. Anhang
    18. A: Checkliste für sichere Webapplikationen
    19. B: Wichtige Optionen in php.ini
    20. B.1 variables_order
    21. B.2 register_globals
    22. B.3 register_long_arrays
    23. B.4 register_argc_argv
    24. B.5 post_max_size
    25. B.6 magic_quotes_gpc
    26. B.7 magic_quotes_runtime
    27. B.8 always_populate_raw_post_data
    28. B.9 allow_url_fopen
    29. B.10 allow_url_include
    30. C: Liste aller Schwachstellen mit Gefahrenpotenzial-Bewertung
    31. C.1 Cross-Site Scripting
    32. C.2 Information Disclosure
    33. C.3 Full Path Disclosure
    34. C.4 SQL-Injection
    35. C.5 HTTP Response Splitting
    36. C.6 Cross-Site Request Forgery
    37. C.7 Remote Command Execution
    38. C.8 Mail-Header Injection
    39. D: Glossar (1/2)
    40. D: Glossar (2/2)
    41. Stichwortverzeichnis