PHP-Sicherheit: PHP/MySQL-Webanwendungen sicher programmieren
Gespeichert in:
Hauptverfasser: | , |
---|---|
Format: | Buch |
Sprache: | German |
Veröffentlicht: |
Heidelberg
dpunkt-Verl.
2008
|
Ausgabe: | 3., überarb. Aufl. |
Schlagworte: | |
Online-Zugang: | Inhaltstext Beschreibung für Leser Inhaltsverzeichnis |
Beschreibung: | XV, 335 S. Ill., graph. Darst. 24 cm |
ISBN: | 9783898645355 |
Internformat
MARC
LEADER | 00000nam a2200000 c 4500 | ||
---|---|---|---|
001 | BV023411307 | ||
003 | DE-604 | ||
005 | 20120914 | ||
007 | t | ||
008 | 080723s2008 gw ad|| |||| 00||| ger d | ||
015 | |a 08,A29,0053 |2 dnb | ||
016 | 7 | |a 989185125 |2 DE-101 | |
020 | |a 9783898645355 |c kart. : EUR 36.00 (DE), EUR 37.10 (AT), sfr 62.00 (freier Pr.) |9 978-3-89864-535-5 | ||
035 | |a (OCoLC)244038624 | ||
035 | |a (DE-599)DNB989185125 | ||
040 | |a DE-604 |b ger |e rakddb | ||
041 | 0 | |a ger | |
044 | |a gw |c XA-DE-BW | ||
049 | |a DE-859 |a DE-Aug4 |a DE-29T |a DE-703 |a DE-739 |a DE-20 |a DE-83 |a DE-861 |a DE-11 |a DE-188 | ||
082 | 0 | |a 005.133 |2 22/ger | |
084 | |a ST 250 |0 (DE-625)143626: |2 rvk | ||
084 | |a 004 |2 sdnb | ||
100 | 1 | |a Kunz, Christopher |d 1979- |e Verfasser |0 (DE-588)13089835X |4 aut | |
245 | 1 | 0 | |a PHP-Sicherheit |b PHP/MySQL-Webanwendungen sicher programmieren |c Christopher Kunz ; Stefan Esser |
250 | |a 3., überarb. Aufl. | ||
264 | 1 | |a Heidelberg |b dpunkt-Verl. |c 2008 | |
300 | |a XV, 335 S. |b Ill., graph. Darst. |c 24 cm | ||
336 | |b txt |2 rdacontent | ||
337 | |b n |2 rdamedia | ||
338 | |b nc |2 rdacarrier | ||
650 | 0 | 7 | |a Datensicherung |0 (DE-588)4011144-1 |2 gnd |9 rswk-swf |
650 | 0 | 7 | |a PHP 5.0 |0 (DE-588)4763174-0 |2 gnd |9 rswk-swf |
689 | 0 | 0 | |a PHP 5.0 |0 (DE-588)4763174-0 |D s |
689 | 0 | 1 | |a Datensicherung |0 (DE-588)4011144-1 |D s |
689 | 0 | |5 DE-604 | |
700 | 1 | |a Esser, Stefan |e Verfasser |0 (DE-588)133227138 |4 aut | |
856 | 4 | 2 | |q text/html |u http://deposit.dnb.de/cgi-bin/dokserv?id=3125455&prov=M&dok_var=1&dok_ext=htm |3 Inhaltstext |
856 | 4 | 2 | |q text/html |u http://www.dpunkt.de/buecher/2905.html |3 Beschreibung für Leser |
856 | 4 | 2 | |m Digitalisierung UB Passau |q application/pdf |u http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=016593914&sequence=000002&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA |3 Inhaltsverzeichnis |
943 | 1 | |a oai:aleph.bib-bvb.de:BVB01-016593914 |
Datensatz im Suchindex
_version_ | 1805090814074814464 |
---|---|
adam_text |
Inhaltsverzeichnis
1 Einleitung 1
1.1 Über dieses Buch. 1
1.2 Was ist Sicherheit? . 4
1.3 Wichtige Begriffe . 5
1.4 Sicherheitskonzepte. 7
1.5 ISO 17799 . 9
1.6 Wie verkaufe ich Sicherheit?. 10
1.7 Wichtige Informationsquellen. 12
1.7.1 Mailinglisten . 12
1.7.2
Full Disclosure.
13
1.7.3
BugTraq
. 14
1.7.4
WebAppSec
. 15
1.8
OWASP
. 15
1.9
PHP-Sícherheit.de
. 16
2 Informationsgewinnung 17
2.1 Grundlagen. 17
2.2 Webserver erkennen. 18
2.2.1 Server-Banner erfragen. 19
2.2.2 Webserver-Verhalten interpretieren. . 21
2.2.3 Tools für
Webserver-Fingerprinting
. 22
2.3 Betriebssystem erkennen. 22
2.4 PHP-Installation erkennen . 23
2.5 Datenbanksystem erkennen . 26
2.6 Datei-Altlasten . 27
2.6.1 Temporäre Dateien. 28
2.6.2
Include-
und Backup-Dateien . 29
2.6.3 Dateien von Entwicklungswerkzeugen . 30
2.6.4 Vergessene oder »versteckte« PHP-Dateien. 31
2.6.5 Temporäre CVS-Dateien. 32
2.7 Pfade. 32
2.7.1 mod_speling. 32
2.7.2
robots.txt
. 33
2.7.3 Standardpfade. 34
2.7.4 Pfade verkürzen . 37
2.8 Kommentare aus HTML-Dateien . 37
2.9 Applikationen erkennen. 38
2.9.1 Das Aussehen/Layout. 39
2.9.2 Typische Dateien bekannter Applikationen. 39
2.9.3 Header-Felder. 39
2.9.4 Bestimmte Pfade. 39
2.9.5 Kommentare im Quellcode. 40
2.9.6 HTML-Metatags . 41
2.10
Default-User
. 41
2.11 Google Dork. 42
2.12 Fazit. 42
3 Parametermanipulation 45
3.1 Grundlagen. 45
3.2 Werkzeuge zur Parametermanipulation. 48
3.2.1 Parametermanipulation mit dem Browser. 48
3.2.2 Einen Proxy benutzen. 51
3.3 Angriffsszenarien und Lösungen. 53
3.3.1 Fehlererzeugung . 53
3.3.2 HTTP
Response
Splitting . 55
3.3.3 Remote
Command Execution.
59
3.3.4 Angriffe auf Dateisystemfunktionen. 61
3.3.5 Angriffe auf Shell-Ebene. 62
3.3.6 Cookie
Poisoning
. 63
3.3.7 Manipulation von Formulardaten. 64
3.3.8 Vordefinierte PHP-Variablen manipulieren. 65
3.3.9 Spam über Mailformulare. 65
3.4 Variablen richtig prüfen . 67
3.4.1 Auf Datentyp prüfen . 68
3.4.2 Datenlänge prüfen. 69
3.4.3 Inhalte prüfen . 70
3.4.4 Whitelist-Prüfungen. 72
3.4.5 Blacklist-Prüfung. 74
3.4.6 Clientseitige Validierung . 75
3.5
register_globals
. 75
3.6 Fazit. 79
4
Cross-Site
Scripting 81
4.1 Grenzenlose Angriffe . 81
4.2 Was ist
Cross-Site
Scripting? . 82
4.3 Warum XSS gefährlich ist . 83
4.4 Erhöhte Gefahr dank Browserkomfort. 84
4.5 Formularvervollständigung verhindern. 85
4.6 XSS in
LANs
und
WANs
. 86
4.7 XSS - einige Beispiele. 87
4.8 Ein klassisches XSS . 88
4.9 Angriffspunkte für XSS . 90
4.10 Angriffe verschleiern - XSS
Cheat
Sheet. 91
4.11 Einfache Gegenmaßnahmen. 94
4.12 XSS verbieten, HTML erlauben - wie?. 97
4.12.1 BBCode . 97
4.12.2 HTML-Filter mit XSS-Blacklist . 98
4.12.3 Whitelist-Filtern mit »HTML
Purifier«
. 101
4.13 Die Zwischenablage per XSS auslesen . 103
4.14 XSS-Angriffe über DOM . 104
4.15 XSS in HTTP-Headern. 107
4.15.1 Angriffe der ersten Ordnung mit Headern . 107
4.15.2
Second
Order XSS per Header. 107
4.16
Attack API
. 110
4.17
Second
Order XSS per RSS. 111
4.18
Cross-Site Request Forgery (CSRF)
. 112
4.18.1
CSRF
als Firewall-Brecher . 114
4.18.2
CSRF in BBCode
. 115
4.18.3 Ein erster Schutz gegen CSRF. 116
4.18.4 CSRF-Schutzmechanismen . 117
4.18.5 Formular-Token gegen CSRF. 118
4.18.6 Unheilige Allianz: CSRF und XSS. 119
5 SQL-Injection 121
5.1 Grundlagen. 121
5.2 Auffinden von SQL-Injection-Möglichkeiten. 123
5.2.1 GET-Parameter. 124
5.2.2 POST-Parameter.,. 125
5.2.3 Cookie-Parameter.126
5.2.4 Servervariablen. 127
5.3 Syntax einer SQL-Injection. 130
5.3.1 Sonderzeichen in SQL. 130
5.3.2 Schlüsselwörter in SQL. 131
5.3.3 Einfache SQL-Injection. 131
5.3.4 UNION-Injections . 133
5.4 Advanced SQL-Injection. 136
5.4.1 LOAD_FILE. 136
5.4.2
Denial of
Service mit SQL-Injection . 137
5.4.3 ORDER
BY Injection.
138
5.5 Schutz vor SQL-Injection . 139
5.5.1 Sonderzeichen maskieren . 139
5.5.2 Ist Schlüsselwort-Filterung ein
wirksamer Schutz? . 140
5.5.3 Parameter
Binding/Prepared
Statements.140
5.5.4
Stored Procedures
.142
5.6 Fazit . 143
6 Authentisierung und Authentifizierung 145
6.1 Wichtige Begriffe. 145
6.1.1 Authentisierung . 145
6.1.2 Authentifizierung . 146
6.1.3 Autorisierung . 146
6.2
Authentisierungssicherheit
. 147
6.2.1
SSL
. 147
6.2.2 Behandlung von Passwörtern. 149
6.2.3 Benutzernamen und Kennungen. 151
6.2.4 Sichere Passwörter. 152
6.2.5 Passwort-Sicherheit bestimmen . 155
6.2.6 Vergessene Passwörter. 158
6.3 Authentifizierungssicherheit. 163
6.3.1 Falsche Request-Methode. 163
6.3.2 Falsche SQL-Abfrage. 164
6.3.3 SQL-Injection. 165
6.3.4 XSS . 165
6.4 Spamvermeidung mit CAPTCHAs. 166
6.5 Fazit. 170
7
Sessions
171
7.1 Grundlagen . 171
7.2
Permissive
oder strikte Session-Systeme . 173
7.3 Session-Speicherung. 174
7.4 Schwache Algorithmen zur Session-ID-Generierung . 177
7.5 Session-Timeout. 178
7.6 Bruteforcing von
Sessions
. 179
7.7 Session
Hijacking
. 180
7.8 Session
Fixation
. 182
7.9 Zusätzliche Abwehrmethoden . 182
7.9.1 Page-Ticket-System . 182
7.9.2 Session-Dateien mittels Cronjob löschen . 184
7.9.3 Session-ID aus dem Referrer löschen. 184
7.10 Fazit. 185
8 Upload-Formulare 187
8.1 Grundlagen . 187
8.2 Aufbau eines Upload-Formulars. 187
8.3 PHP-interne Verarbeitung . 188
8.4 Speicherung der hochgeladenen Dateien. 189
8.5 Bildüberprüfung . 190
8.6 PHP-Code in ein Bild einfügen. 191
8.7 Andere Dateitypen überprüfen . 192
8.8 Gefährliche
Zip-Archive
. 193
8.9 Fazit . 193
9 Variablenfilter mit ext/filter 195
9.1 Überblick . 195
9.2 Installation . 196
9.3 Die Filter-API . 196
9.4 Verfügbare Filter. 197
9.4.1 Validierende Filter . 198
9.4.2 Reinigende Filter. 199
9.5 Zahlen prüfen und filtern. 200
9.6 Boolesche Werte. 201
9.7 URLs
validieren
. 201
9.8 IP-Adressen prüfen . 203
9.9 Syntaxcheck für E-Mail-Adressen. 204
9.10 Reinigende Filter. 205
9.11 Prüfung externer Daten. 205
9.12 Callback-Funktionen. 206
9.13 Fazit . 207
10 PHP intern 209
10.1 Fehler in PHP . 209
10.1.1
Month of
PHP Bugs . 209
10.1.2 File-Upload-Bug . 210
10.1.3 Unsichere (De-)Serialisierung . 210
10.1.4 Verwirrter Speichermanager. 210
10.1.5 Speicherproblem dank htmlentities. 211
10.1.6 Bewertung. 211
10.2 Bestandteile eines sicheren Servers. 211
10.3 Unix oder Windows? . 213
10.4 Bleiben Sie aktuell! . 213
10.5 Installation . 214
10.5.1 Installation als Apache-Modul . 214
10.5.2 CGI. 216
10.6 suExec. 217
10.7
Safe Mode
. 219
10.7.1 Einrichtung des
Safe Mode
. 220
10.7.2
safe_mode_exec_dir
. 221
10.7.3
safe_mode_include_dir
. 221
10.7.4 Umgebungsvariablen im
Safe Mode
. 222
10.7.5
Safe Mode considered harmful?
. 222
10.8 Weitere PHP-Einstellungen. 224
10.8.1
open_basedir
. 224
10.8.2
disablejunctions
. 225
10.8.3
disable^lasses
. 226
10.8.4
max_execution_time
. 226
10.8.5
max_input_time
. 226
10.8.6
memory_limit
. 226
10.8.7
Upload-Einstellungen
. 227
10.8.8
allowuirljopen
. 228
10.8.9
allow^urUnclude
. 229
10.8.10
register_globals
. 229
10.9 Code-Sandboxing mit runkit . 229
10.10 Externe Ansätze. 231
10.10.1 suPHP . 231
10.10.2
FastCGI
. 235
10.10.3 Das Apache-Modul mod_suid . 237
10.11
Rootjaíl-Lösungen .
241
10.11.1 BSD-Rootjails . 241
10.11.2 User Mode Linux. 242
10.11.3 mod_security. 242
10.11.4 mod_chroot. 242
10.12 Fazit. 243
11
PHP-Hardening
245
11.1 Warum PHP härten? . 245
11.1.1 Buffer
Overflows
. 246
11.1.2 Schutz vor Pufferüberläufen im
Suhosin-Patch . 247
11.1.3 Schutz vor Format-String-Schwachstellen. 248
11.1.4 Simulationsmodus . 249
11.1.5 Include-Schutz gegen
Remote-Includes
und Nullbytes . 250
11.1.6
Funktions-
und Evaluationsbeschränkungen . 251
11.1.7 Schutz gegen
Response
Splitting und
Mailheader
Injection
. 252
11.1.8 Variablenschutz. 252
11.1.9
SQL Intrusion Detection
. 253
11.1.10
Logging
. 253
11.1.11 Transparente
Cookie-
und
Session-
Verschlüsselung . 253
11.1.12 Härtung des Speicherlimits. 254
11.1.13 Transparenter phpinfo() Schutz . 254
11.1.14 Kryptografische Funktionen. 254
11.2 Prinzipien hinter Suhosin . 255
11.3 Installation . 255
11.3.1 Installation des Patch . 255
11.3.2 Installation der
Extension
. 258
11.4 Zusammenarbeit mit anderen Zend-Extensions . 259
11.5 Konfiguration. 260
11.5.1 Generelle Optionen. 260
11.5.2 Log-Dateien . 263
11.5.3 Alarmskript. 266
11.5.4 Transparente Verschlüsselung. 267
11.5.5 Variablenfilter. 268
11.5.6 Upload-Konfiguration. 271
11.6 Beispielkonfiguration . 273
11.7 Fazit und Ausblick . 274
12 Webserver-Filter für Apache 275
12.1 Einsatzgebiet von Filtermodulen. 275
12.2 Blacklist oder Whitelist? . 276
12.3 mod_security. 277
12.3.1 So funktioniert's. 278
12.3.2 Gefahren durch mod_security. 278
12.3.3 Installation. 279
12.3.4 Konfiguration. 280
12.3.5 Regelwerk von mod_security . 283
12.3.6 Alarmskript für mod_security. 293
12.3.7 Rootjail-Umgebungen mit mod_security. 293
12.3.8 mod_security 2. 296
12.4 mod_parmguard. 299
12.4.1 So funktioniert's. 299
12.4.2 Installation. 300
12.4.3 Webserver-Konfiguration. 301
12.4.4 XML-Whitelist manuell erstellen . 303
12.4.5 Automatische Erzeugung . 308
12.5 Fazit . 309
Anhang 310
A
Checkliste für sichere Webapplikationen 311
В
Wichtige Optionen in php.ini 315
B.l variables^order. 315
B.2
register_globals
. 316
B.3 register_long_arrays. 316
B.4 register_argc_argv . 316
B.5 post_max_size . 317
B.6 magic_quotes_gpc . 317
B.7 magic_quotes_runtime. 317
B.8 always_populate_raw_post_data . 317
B.9 allow_url_fopen. 318
B.10 allow.urUnclude. 318
С
Liste aller Schwachstellen mit
Gefahrenpotenzial-Bewertung 319
C.I Cross-Site
Scripting . 319
C.2 Information
Disclosure
. 319
C.3
Full Path Disclosure
. 320
C.4 SQL-Injection
. 320
C.5 HTTP Response Splitting
. 320
C.6 Cross-Site Request Forgery
. 321
C.7 Remote Command Execution
. 321
C.8 Mail-Header Injection
. 321
D
Quellen 322
E Glossar
323
Stichwortverzeichnis 331 |
adam_txt |
Inhaltsverzeichnis
1 Einleitung 1
1.1 Über dieses Buch. 1
1.2 Was ist Sicherheit? . 4
1.3 Wichtige Begriffe . 5
1.4 Sicherheitskonzepte. 7
1.5 ISO 17799 . 9
1.6 Wie verkaufe ich Sicherheit?. 10
1.7 Wichtige Informationsquellen. 12
1.7.1 Mailinglisten . 12
1.7.2
Full Disclosure.
13
1.7.3
BugTraq
. 14
1.7.4
WebAppSec
. 15
1.8
OWASP
. 15
1.9
PHP-Sícherheit.de
. 16
2 Informationsgewinnung 17
2.1 Grundlagen. 17
2.2 Webserver erkennen. 18
2.2.1 Server-Banner erfragen. 19
2.2.2 Webserver-Verhalten interpretieren. . 21
2.2.3 Tools für
Webserver-Fingerprinting
. 22
2.3 Betriebssystem erkennen. 22
2.4 PHP-Installation erkennen . 23
2.5 Datenbanksystem erkennen . 26
2.6 Datei-Altlasten . 27
2.6.1 Temporäre Dateien. 28
2.6.2
Include-
und Backup-Dateien . 29
2.6.3 Dateien von Entwicklungswerkzeugen . 30
2.6.4 Vergessene oder »versteckte« PHP-Dateien. 31
2.6.5 Temporäre CVS-Dateien. 32
2.7 Pfade. 32
2.7.1 mod_speling. 32
2.7.2
robots.txt
. 33
2.7.3 Standardpfade. 34
2.7.4 Pfade verkürzen . 37
2.8 Kommentare aus HTML-Dateien . 37
2.9 Applikationen erkennen. 38
2.9.1 Das Aussehen/Layout. 39
2.9.2 Typische Dateien bekannter Applikationen. 39
2.9.3 Header-Felder. 39
2.9.4 Bestimmte Pfade. 39
2.9.5 Kommentare im Quellcode. 40
2.9.6 HTML-Metatags . 41
2.10
Default-User
. 41
2.11 Google Dork. 42
2.12 Fazit. 42
3 Parametermanipulation 45
3.1 Grundlagen. 45
3.2 Werkzeuge zur Parametermanipulation. 48
3.2.1 Parametermanipulation mit dem Browser. 48
3.2.2 Einen Proxy benutzen. 51
3.3 Angriffsszenarien und Lösungen. 53
3.3.1 Fehlererzeugung . 53
3.3.2 HTTP
Response
Splitting . 55
3.3.3 Remote
Command Execution.
59
3.3.4 Angriffe auf Dateisystemfunktionen. 61
3.3.5 Angriffe auf Shell-Ebene. 62
3.3.6 Cookie
Poisoning
. 63
3.3.7 Manipulation von Formulardaten. 64
3.3.8 Vordefinierte PHP-Variablen manipulieren. 65
3.3.9 Spam über Mailformulare. 65
3.4 Variablen richtig prüfen . 67
3.4.1 Auf Datentyp prüfen . 68
3.4.2 Datenlänge prüfen. 69
3.4.3 Inhalte prüfen . 70
3.4.4 Whitelist-Prüfungen. 72
3.4.5 Blacklist-Prüfung. 74
3.4.6 Clientseitige Validierung . 75
3.5
register_globals
. 75
3.6 Fazit. 79
4
Cross-Site
Scripting 81
4.1 Grenzenlose Angriffe . 81
4.2 Was ist
Cross-Site
Scripting? . 82
4.3 Warum XSS gefährlich ist . 83
4.4 Erhöhte Gefahr dank Browserkomfort. 84
4.5 Formularvervollständigung verhindern. 85
4.6 XSS in
LANs
und
WANs
. 86
4.7 XSS - einige Beispiele. 87
4.8 Ein klassisches XSS . 88
4.9 Angriffspunkte für XSS . 90
4.10 Angriffe verschleiern - XSS
Cheat
Sheet. 91
4.11 Einfache Gegenmaßnahmen. 94
4.12 XSS verbieten, HTML erlauben - wie?. 97
4.12.1 BBCode . 97
4.12.2 HTML-Filter mit XSS-Blacklist . 98
4.12.3 Whitelist-Filtern mit »HTML
Purifier«
. 101
4.13 Die Zwischenablage per XSS auslesen . 103
4.14 XSS-Angriffe über DOM . 104
4.15 XSS in HTTP-Headern. 107
4.15.1 Angriffe der ersten Ordnung mit Headern . 107
4.15.2
Second
Order XSS per Header. 107
4.16
Attack API
. 110
4.17
Second
Order XSS per RSS. 111
4.18
Cross-Site Request Forgery (CSRF)
. 112
4.18.1
CSRF
als Firewall-Brecher . 114
4.18.2
CSRF in BBCode
. 115
4.18.3 Ein erster Schutz gegen CSRF. 116
4.18.4 CSRF-Schutzmechanismen . 117
4.18.5 Formular-Token gegen CSRF. 118
4.18.6 Unheilige Allianz: CSRF und XSS. 119
5 SQL-Injection 121
5.1 Grundlagen. 121
5.2 Auffinden von SQL-Injection-Möglichkeiten. 123
5.2.1 GET-Parameter. 124
5.2.2 POST-Parameter.,. 125
5.2.3 Cookie-Parameter.126
5.2.4 Servervariablen. 127
5.3 Syntax einer SQL-Injection. 130
5.3.1 Sonderzeichen in SQL. 130
5.3.2 Schlüsselwörter in SQL. 131
5.3.3 Einfache SQL-Injection. 131
5.3.4 UNION-Injections . 133
5.4 Advanced SQL-Injection. 136
5.4.1 LOAD_FILE. 136
5.4.2
Denial of
Service mit SQL-Injection . 137
5.4.3 ORDER
BY Injection.
138
5.5 Schutz vor SQL-Injection . 139
5.5.1 Sonderzeichen maskieren . 139
5.5.2 Ist Schlüsselwort-Filterung ein
wirksamer Schutz? . 140
5.5.3 Parameter
Binding/Prepared
Statements.140
5.5.4
Stored Procedures
.142
5.6 Fazit . 143
6 Authentisierung und Authentifizierung 145
6.1 Wichtige Begriffe. 145
6.1.1 Authentisierung . 145
6.1.2 Authentifizierung . 146
6.1.3 Autorisierung . 146
6.2
Authentisierungssicherheit
. 147
6.2.1
SSL
. 147
6.2.2 Behandlung von Passwörtern. 149
6.2.3 Benutzernamen und Kennungen. 151
6.2.4 Sichere Passwörter. 152
6.2.5 Passwort-Sicherheit bestimmen . 155
6.2.6 Vergessene Passwörter. 158
6.3 Authentifizierungssicherheit. 163
6.3.1 Falsche Request-Methode. 163
6.3.2 Falsche SQL-Abfrage. 164
6.3.3 SQL-Injection. 165
6.3.4 XSS . 165
6.4 Spamvermeidung mit CAPTCHAs. 166
6.5 Fazit. 170
7
Sessions
171
7.1 Grundlagen . 171
7.2
Permissive
oder strikte Session-Systeme . 173
7.3 Session-Speicherung. 174
7.4 Schwache Algorithmen zur Session-ID-Generierung . 177
7.5 Session-Timeout. 178
7.6 Bruteforcing von
Sessions
. 179
7.7 Session
Hijacking
. 180
7.8 Session
Fixation
. 182
7.9 Zusätzliche Abwehrmethoden . 182
7.9.1 Page-Ticket-System . 182
7.9.2 Session-Dateien mittels Cronjob löschen . 184
7.9.3 Session-ID aus dem Referrer löschen. 184
7.10 Fazit. 185
8 Upload-Formulare 187
8.1 Grundlagen . 187
8.2 Aufbau eines Upload-Formulars. 187
8.3 PHP-interne Verarbeitung . 188
8.4 Speicherung der hochgeladenen Dateien. 189
8.5 Bildüberprüfung . 190
8.6 PHP-Code in ein Bild einfügen. 191
8.7 Andere Dateitypen überprüfen . 192
8.8 Gefährliche
Zip-Archive
. 193
8.9 Fazit . 193
9 Variablenfilter mit ext/filter 195
9.1 Überblick . 195
9.2 Installation . 196
9.3 Die Filter-API . 196
9.4 Verfügbare Filter. 197
9.4.1 Validierende Filter . 198
9.4.2 Reinigende Filter. 199
9.5 Zahlen prüfen und filtern. 200
9.6 Boolesche Werte. 201
9.7 URLs
validieren
. 201
9.8 IP-Adressen prüfen . 203
9.9 Syntaxcheck für E-Mail-Adressen. 204
9.10 Reinigende Filter. 205
9.11 Prüfung externer Daten. 205
9.12 Callback-Funktionen. 206
9.13 Fazit . 207
10 PHP intern 209
10.1 Fehler in PHP . 209
10.1.1
Month of
PHP Bugs . 209
10.1.2 File-Upload-Bug . 210
10.1.3 Unsichere (De-)Serialisierung . 210
10.1.4 Verwirrter Speichermanager. 210
10.1.5 Speicherproblem dank htmlentities. 211
10.1.6 Bewertung. 211
10.2 Bestandteile eines sicheren Servers. 211
10.3 Unix oder Windows? . 213
10.4 Bleiben Sie aktuell! . 213
10.5 Installation . 214
10.5.1 Installation als Apache-Modul . 214
10.5.2 CGI. 216
10.6 suExec. 217
10.7
Safe Mode
. 219
10.7.1 Einrichtung des
Safe Mode
. 220
10.7.2
safe_mode_exec_dir
. 221
10.7.3
safe_mode_include_dir
. 221
10.7.4 Umgebungsvariablen im
Safe Mode
. 222
10.7.5
Safe Mode considered harmful?
. 222
10.8 Weitere PHP-Einstellungen. 224
10.8.1
open_basedir
. 224
10.8.2
disablejunctions
. 225
10.8.3
disable^lasses
. 226
10.8.4
max_execution_time
. 226
10.8.5
max_input_time
. 226
10.8.6
memory_limit
. 226
10.8.7
Upload-Einstellungen
. 227
10.8.8
allowuirljopen
. 228
10.8.9
allow^urUnclude
. 229
10.8.10
register_globals
. 229
10.9 Code-Sandboxing mit runkit . 229
10.10 Externe Ansätze. 231
10.10.1 suPHP . 231
10.10.2
FastCGI
. 235
10.10.3 Das Apache-Modul mod_suid . 237
10.11
Rootjaíl-Lösungen .
241
10.11.1 BSD-Rootjails . 241
10.11.2 User Mode Linux. 242
10.11.3 mod_security. 242
10.11.4 mod_chroot. 242
10.12 Fazit. 243
11
PHP-Hardening
245
11.1 Warum PHP härten? . 245
11.1.1 Buffer
Overflows
. 246
11.1.2 Schutz vor Pufferüberläufen im
Suhosin-Patch . 247
11.1.3 Schutz vor Format-String-Schwachstellen. 248
11.1.4 Simulationsmodus . 249
11.1.5 Include-Schutz gegen
Remote-Includes
und Nullbytes . 250
11.1.6
Funktions-
und Evaluationsbeschränkungen . 251
11.1.7 Schutz gegen
Response
Splitting und
Mailheader
Injection
. 252
11.1.8 Variablenschutz. 252
11.1.9
SQL Intrusion Detection
. 253
11.1.10
Logging
. 253
11.1.11 Transparente
Cookie-
und
Session-
Verschlüsselung . 253
11.1.12 Härtung des Speicherlimits. 254
11.1.13 Transparenter phpinfo() Schutz . 254
11.1.14 Kryptografische Funktionen. 254
11.2 Prinzipien hinter Suhosin . 255
11.3 Installation . 255
11.3.1 Installation des Patch . 255
11.3.2 Installation der
Extension
. 258
11.4 Zusammenarbeit mit anderen Zend-Extensions . 259
11.5 Konfiguration. 260
11.5.1 Generelle Optionen. 260
11.5.2 Log-Dateien . 263
11.5.3 Alarmskript. 266
11.5.4 Transparente Verschlüsselung. 267
11.5.5 Variablenfilter. 268
11.5.6 Upload-Konfiguration. 271
11.6 Beispielkonfiguration . 273
11.7 Fazit und Ausblick . 274
12 Webserver-Filter für Apache 275
12.1 Einsatzgebiet von Filtermodulen. 275
12.2 Blacklist oder Whitelist? . 276
12.3 mod_security. 277
12.3.1 So funktioniert's. 278
12.3.2 Gefahren durch mod_security. 278
12.3.3 Installation. 279
12.3.4 Konfiguration. 280
12.3.5 Regelwerk von mod_security . 283
12.3.6 Alarmskript für mod_security. 293
12.3.7 Rootjail-Umgebungen mit mod_security. 293
12.3.8 mod_security 2. 296
12.4 mod_parmguard. 299
12.4.1 So funktioniert's. 299
12.4.2 Installation. 300
12.4.3 Webserver-Konfiguration. 301
12.4.4 XML-Whitelist manuell erstellen . 303
12.4.5 Automatische Erzeugung . 308
12.5 Fazit . 309
Anhang 310
A
Checkliste für sichere Webapplikationen 311
В
Wichtige Optionen in php.ini 315
B.l variables^order. 315
B.2
register_globals
. 316
B.3 register_long_arrays. 316
B.4 register_argc_argv . 316
B.5 post_max_size . 317
B.6 magic_quotes_gpc . 317
B.7 magic_quotes_runtime. 317
B.8 always_populate_raw_post_data . 317
B.9 allow_url_fopen. 318
B.10 allow.urUnclude. 318
С
Liste aller Schwachstellen mit
Gefahrenpotenzial-Bewertung 319
C.I Cross-Site
Scripting . 319
C.2 Information
Disclosure
. 319
C.3
Full Path Disclosure
. 320
C.4 SQL-Injection
. 320
C.5 HTTP Response Splitting
. 320
C.6 Cross-Site Request Forgery
. 321
C.7 Remote Command Execution
. 321
C.8 Mail-Header Injection
. 321
D
Quellen 322
E Glossar
323
Stichwortverzeichnis 331 |
any_adam_object | 1 |
any_adam_object_boolean | 1 |
author | Kunz, Christopher 1979- Esser, Stefan |
author_GND | (DE-588)13089835X (DE-588)133227138 |
author_facet | Kunz, Christopher 1979- Esser, Stefan |
author_role | aut aut |
author_sort | Kunz, Christopher 1979- |
author_variant | c k ck s e se |
building | Verbundindex |
bvnumber | BV023411307 |
classification_rvk | ST 250 |
ctrlnum | (OCoLC)244038624 (DE-599)DNB989185125 |
dewey-full | 005.133 |
dewey-hundreds | 000 - Computer science, information, general works |
dewey-ones | 005 - Computer programming, programs, data, security |
dewey-raw | 005.133 |
dewey-search | 005.133 |
dewey-sort | 15.133 |
dewey-tens | 000 - Computer science, information, general works |
discipline | Informatik |
discipline_str_mv | Informatik |
edition | 3., überarb. Aufl. |
format | Book |
fullrecord | <?xml version="1.0" encoding="UTF-8"?><collection xmlns="http://www.loc.gov/MARC21/slim"><record><leader>00000nam a2200000 c 4500</leader><controlfield tag="001">BV023411307</controlfield><controlfield tag="003">DE-604</controlfield><controlfield tag="005">20120914</controlfield><controlfield tag="007">t</controlfield><controlfield tag="008">080723s2008 gw ad|| |||| 00||| ger d</controlfield><datafield tag="015" ind1=" " ind2=" "><subfield code="a">08,A29,0053</subfield><subfield code="2">dnb</subfield></datafield><datafield tag="016" ind1="7" ind2=" "><subfield code="a">989185125</subfield><subfield code="2">DE-101</subfield></datafield><datafield tag="020" ind1=" " ind2=" "><subfield code="a">9783898645355</subfield><subfield code="c">kart. : EUR 36.00 (DE), EUR 37.10 (AT), sfr 62.00 (freier Pr.)</subfield><subfield code="9">978-3-89864-535-5</subfield></datafield><datafield tag="035" ind1=" " ind2=" "><subfield code="a">(OCoLC)244038624</subfield></datafield><datafield tag="035" ind1=" " ind2=" "><subfield code="a">(DE-599)DNB989185125</subfield></datafield><datafield tag="040" ind1=" " ind2=" "><subfield code="a">DE-604</subfield><subfield code="b">ger</subfield><subfield code="e">rakddb</subfield></datafield><datafield tag="041" ind1="0" ind2=" "><subfield code="a">ger</subfield></datafield><datafield tag="044" ind1=" " ind2=" "><subfield code="a">gw</subfield><subfield code="c">XA-DE-BW</subfield></datafield><datafield tag="049" ind1=" " ind2=" "><subfield code="a">DE-859</subfield><subfield code="a">DE-Aug4</subfield><subfield code="a">DE-29T</subfield><subfield code="a">DE-703</subfield><subfield code="a">DE-739</subfield><subfield code="a">DE-20</subfield><subfield code="a">DE-83</subfield><subfield code="a">DE-861</subfield><subfield code="a">DE-11</subfield><subfield code="a">DE-188</subfield></datafield><datafield tag="082" ind1="0" ind2=" "><subfield code="a">005.133</subfield><subfield code="2">22/ger</subfield></datafield><datafield tag="084" ind1=" " ind2=" "><subfield code="a">ST 250</subfield><subfield code="0">(DE-625)143626:</subfield><subfield code="2">rvk</subfield></datafield><datafield tag="084" ind1=" " ind2=" "><subfield code="a">004</subfield><subfield code="2">sdnb</subfield></datafield><datafield tag="100" ind1="1" ind2=" "><subfield code="a">Kunz, Christopher</subfield><subfield code="d">1979-</subfield><subfield code="e">Verfasser</subfield><subfield code="0">(DE-588)13089835X</subfield><subfield code="4">aut</subfield></datafield><datafield tag="245" ind1="1" ind2="0"><subfield code="a">PHP-Sicherheit</subfield><subfield code="b">PHP/MySQL-Webanwendungen sicher programmieren</subfield><subfield code="c">Christopher Kunz ; Stefan Esser</subfield></datafield><datafield tag="250" ind1=" " ind2=" "><subfield code="a">3., überarb. Aufl.</subfield></datafield><datafield tag="264" ind1=" " ind2="1"><subfield code="a">Heidelberg</subfield><subfield code="b">dpunkt-Verl.</subfield><subfield code="c">2008</subfield></datafield><datafield tag="300" ind1=" " ind2=" "><subfield code="a">XV, 335 S.</subfield><subfield code="b">Ill., graph. Darst.</subfield><subfield code="c">24 cm</subfield></datafield><datafield tag="336" ind1=" " ind2=" "><subfield code="b">txt</subfield><subfield code="2">rdacontent</subfield></datafield><datafield tag="337" ind1=" " ind2=" "><subfield code="b">n</subfield><subfield code="2">rdamedia</subfield></datafield><datafield tag="338" ind1=" " ind2=" "><subfield code="b">nc</subfield><subfield code="2">rdacarrier</subfield></datafield><datafield tag="650" ind1="0" ind2="7"><subfield code="a">Datensicherung</subfield><subfield code="0">(DE-588)4011144-1</subfield><subfield code="2">gnd</subfield><subfield code="9">rswk-swf</subfield></datafield><datafield tag="650" ind1="0" ind2="7"><subfield code="a">PHP 5.0</subfield><subfield code="0">(DE-588)4763174-0</subfield><subfield code="2">gnd</subfield><subfield code="9">rswk-swf</subfield></datafield><datafield tag="689" ind1="0" ind2="0"><subfield code="a">PHP 5.0</subfield><subfield code="0">(DE-588)4763174-0</subfield><subfield code="D">s</subfield></datafield><datafield tag="689" ind1="0" ind2="1"><subfield code="a">Datensicherung</subfield><subfield code="0">(DE-588)4011144-1</subfield><subfield code="D">s</subfield></datafield><datafield tag="689" ind1="0" ind2=" "><subfield code="5">DE-604</subfield></datafield><datafield tag="700" ind1="1" ind2=" "><subfield code="a">Esser, Stefan</subfield><subfield code="e">Verfasser</subfield><subfield code="0">(DE-588)133227138</subfield><subfield code="4">aut</subfield></datafield><datafield tag="856" ind1="4" ind2="2"><subfield code="q">text/html</subfield><subfield code="u">http://deposit.dnb.de/cgi-bin/dokserv?id=3125455&prov=M&dok_var=1&dok_ext=htm</subfield><subfield code="3">Inhaltstext</subfield></datafield><datafield tag="856" ind1="4" ind2="2"><subfield code="q">text/html</subfield><subfield code="u">http://www.dpunkt.de/buecher/2905.html</subfield><subfield code="3">Beschreibung für Leser</subfield></datafield><datafield tag="856" ind1="4" ind2="2"><subfield code="m">Digitalisierung UB Passau</subfield><subfield code="q">application/pdf</subfield><subfield code="u">http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=016593914&sequence=000002&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA</subfield><subfield code="3">Inhaltsverzeichnis</subfield></datafield><datafield tag="943" ind1="1" ind2=" "><subfield code="a">oai:aleph.bib-bvb.de:BVB01-016593914</subfield></datafield></record></collection> |
id | DE-604.BV023411307 |
illustrated | Illustrated |
index_date | 2024-07-02T21:27:42Z |
indexdate | 2024-07-20T09:45:47Z |
institution | BVB |
isbn | 9783898645355 |
language | German |
oai_aleph_id | oai:aleph.bib-bvb.de:BVB01-016593914 |
oclc_num | 244038624 |
open_access_boolean | |
owner | DE-859 DE-Aug4 DE-29T DE-703 DE-739 DE-20 DE-83 DE-861 DE-11 DE-188 |
owner_facet | DE-859 DE-Aug4 DE-29T DE-703 DE-739 DE-20 DE-83 DE-861 DE-11 DE-188 |
physical | XV, 335 S. Ill., graph. Darst. 24 cm |
publishDate | 2008 |
publishDateSearch | 2008 |
publishDateSort | 2008 |
publisher | dpunkt-Verl. |
record_format | marc |
spelling | Kunz, Christopher 1979- Verfasser (DE-588)13089835X aut PHP-Sicherheit PHP/MySQL-Webanwendungen sicher programmieren Christopher Kunz ; Stefan Esser 3., überarb. Aufl. Heidelberg dpunkt-Verl. 2008 XV, 335 S. Ill., graph. Darst. 24 cm txt rdacontent n rdamedia nc rdacarrier Datensicherung (DE-588)4011144-1 gnd rswk-swf PHP 5.0 (DE-588)4763174-0 gnd rswk-swf PHP 5.0 (DE-588)4763174-0 s Datensicherung (DE-588)4011144-1 s DE-604 Esser, Stefan Verfasser (DE-588)133227138 aut text/html http://deposit.dnb.de/cgi-bin/dokserv?id=3125455&prov=M&dok_var=1&dok_ext=htm Inhaltstext text/html http://www.dpunkt.de/buecher/2905.html Beschreibung für Leser Digitalisierung UB Passau application/pdf http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=016593914&sequence=000002&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA Inhaltsverzeichnis |
spellingShingle | Kunz, Christopher 1979- Esser, Stefan PHP-Sicherheit PHP/MySQL-Webanwendungen sicher programmieren Datensicherung (DE-588)4011144-1 gnd PHP 5.0 (DE-588)4763174-0 gnd |
subject_GND | (DE-588)4011144-1 (DE-588)4763174-0 |
title | PHP-Sicherheit PHP/MySQL-Webanwendungen sicher programmieren |
title_auth | PHP-Sicherheit PHP/MySQL-Webanwendungen sicher programmieren |
title_exact_search | PHP-Sicherheit PHP/MySQL-Webanwendungen sicher programmieren |
title_exact_search_txtP | PHP-Sicherheit PHP/MySQL-Webanwendungen sicher programmieren |
title_full | PHP-Sicherheit PHP/MySQL-Webanwendungen sicher programmieren Christopher Kunz ; Stefan Esser |
title_fullStr | PHP-Sicherheit PHP/MySQL-Webanwendungen sicher programmieren Christopher Kunz ; Stefan Esser |
title_full_unstemmed | PHP-Sicherheit PHP/MySQL-Webanwendungen sicher programmieren Christopher Kunz ; Stefan Esser |
title_short | PHP-Sicherheit |
title_sort | php sicherheit php mysql webanwendungen sicher programmieren |
title_sub | PHP/MySQL-Webanwendungen sicher programmieren |
topic | Datensicherung (DE-588)4011144-1 gnd PHP 5.0 (DE-588)4763174-0 gnd |
topic_facet | Datensicherung PHP 5.0 |
url | http://deposit.dnb.de/cgi-bin/dokserv?id=3125455&prov=M&dok_var=1&dok_ext=htm http://www.dpunkt.de/buecher/2905.html http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=016593914&sequence=000002&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA |
work_keys_str_mv | AT kunzchristopher phpsicherheitphpmysqlwebanwendungensicherprogrammieren AT esserstefan phpsicherheitphpmysqlwebanwendungensicherprogrammieren |