PHP-Sicherheit: PHP/MySQL-Webanwendungen sicher programmieren
Gespeichert in:
Hauptverfasser: | , , |
---|---|
Format: | Buch |
Sprache: | German |
Veröffentlicht: |
Heidelberg
dpunkt-Verl.
2007
|
Ausgabe: | 2., aktualisierte und überarb. Aufl. |
Schlagworte: | |
Online-Zugang: | Inhaltstext Inhaltsverzeichnis |
Beschreibung: | XV, 321 S. Ill. |
ISBN: | 9783898644501 3898644502 |
Internformat
MARC
LEADER | 00000nam a2200000 c 4500 | ||
---|---|---|---|
001 | BV022253570 | ||
003 | DE-604 | ||
005 | 20111117 | ||
007 | t | ||
008 | 070202s2007 gw a||| |||| 00||| ger d | ||
015 | |a 07,N04,0048 |2 dnb | ||
016 | 7 | |a 982432178 |2 DE-101 | |
020 | |a 9783898644501 |c : ca. EUR 36.00, ca. EUR 37.10 (AT), ca. sfr 62.00 |9 978-3-89864-450-1 | ||
020 | |a 3898644502 |c : ca. EUR 36.00, ca. EUR 37.10 (AT), ca. sfr 62.00 |9 3-89864-450-2 | ||
024 | 3 | |a 9783898644501 | |
035 | |a (OCoLC)180113310 | ||
035 | |a (DE-599)BVBBV022253570 | ||
040 | |a DE-604 |b ger |e rakddb | ||
041 | 0 | |a ger | |
044 | |a gw |c XA-DE-BW | ||
049 | |a DE-824 |a DE-355 |a DE-29T |a DE-1051 |a DE-M347 |a DE-858 |a DE-706 |a DE-523 |a DE-19 |a DE-83 |a DE-91G | ||
082 | 0 | |a 005.133 |2 22/ger | |
084 | |a ST 250 |0 (DE-625)143626: |2 rvk | ||
084 | |a ST 277 |0 (DE-625)143643: |2 rvk | ||
084 | |a 004 |2 sdnb | ||
084 | |a DAT 461f |2 stub | ||
084 | |a DAT 366f |2 stub | ||
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 ; Peter Prochaska |
250 | |a 2., aktualisierte und überarb. Aufl. | ||
264 | 1 | |a Heidelberg |b dpunkt-Verl. |c 2007 | |
300 | |a XV, 321 S. |b Ill. | ||
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 |4 aut | |
700 | 1 | |a Prochaska, Peter |e Verfasser |0 (DE-588)130898376 |4 aut | |
856 | 4 | 2 | |q text/html |u http://deposit.dnb.de/cgi-bin/dokserv?id=2894518&prov=M&dok_var=1&dok_ext=htm |3 Inhaltstext |
856 | 4 | 2 | |m Digitalisierung UB Regensburg |q application/pdf |u http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=015464324&sequence=000002&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA |3 Inhaltsverzeichnis |
943 | 1 | |a oai:aleph.bib-bvb.de:BVB01-015464324 |
Datensatz im Suchindex
_version_ | 1805088665152520192 |
---|---|
adam_text |
Inhaltsverzeichnis
1 Einleitung 1
1.1 Über dieses Buch. 1
1.2 Was ist Sicherheit? . 3
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
1.7.3
1.7.4
1.8
1.9 PHP-Sicherheit.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
2.3 Betriebssystem erkennen. 22
2.4 PHP-Installation erkennen . 23
2.5 Datenbanksystem erkennen . 25
Inhaltsverzeichnis
2.6 Datei-Altlasten .27
2.6.1 Temporäre Dateien . 27
2.6.2
2.6.3 Dateien von Entwicklungswerkzeugen . 29
2.6.4 Vergessene oder »versteckte« PHP-Dateien. 29
2.7 Pfade.30
2.7.1 mod_speling. 30
2.7.2
2.7.3 Standardpfade. 32
2.7.4 Pfade verkürzen. 35
2.8 Kommentare aus HTML-Dateien. 35
2.9 Applikationen erkennen . 36
2.9.1 Das Aussehen/Layout. 36
2.9.2 Das Vorhandensein bestimmter Dateien . 36
2.9.3 Header-Felder . 37
2.9.4 Bestimmte Pfade . 37
2.9.5 Kommentare im Quellcode . 37
2.10
2.11 Google
2.12 Fazit . 39
3 Parametermanipulation 41
3.1 Grundlagen.41
3.2 Werkzeuge zur Parametermanipulation.44
3.2.1 Parametermanipulation mit dem Browser.44
3.2.2 Einen Proxy benutzen .47
3.3 Angriffsszenarien und Lösungen.49
3.3.1 Fehlererzeugung.49
3.3.2 HTTP
3.3.3 Remote
3.3.4 Angriffe auf Dateisystemfunktionen.57
3.3.5 Angriffe auf Shell-Ebene .58
3.3.6 Cookie
3.3.7 Manipulation von Formulardaten .60
3.3.8 Vordefinierte PHP-Variablen manipulieren.61
3.3.9 Spam über Mailformulare.61
Inhaltsverzeichnis ix
3.4 Variablen richtig prüfen . 63
3.4.1 Auf Datentyp prüfen. 64
3.4.2 Datenlänge prüfen. 65
3.4.3 Inhalte prüfen. 66
3.4.4 Whitelist-Prüfungen . 68
3.4.5 Blacklist-Prüfung. 69
3.4.6 Clientseitige Validierung. 70
3.5 register_globals . 71
3.6 Fazit. 74
4
4.1 Grenzenlose Angriffe . 75
4.2 Was ist
4.3 Warum XSS gefährlich ist . 77
4.4 Erhöhte Gefahr dank Browserkomfort. 78
4.5 Formularvervollständigung verhindern. 79
4.6 XSS in
4.7 XSS - einige Beispiele. 81
4.8 Ein klassisches XSS . 82
4.9 Angriffspunkte für XSS . 84
4.10 Angriffe verschleiern - XSS
4.11 Einfache Gegenmaßnahmen. 88
4.12 XSS verbieten, HTML erlauben - wie?. 90
4.12.1 BBCode. 91
4.12.2 HTML-Filter mit XSS-Blacklist. 92
4.12.3 Whitelist-Filtern mit »HTML
4.13 Die Zwischenablage per XSS auslesen . 97
4.14 XSS-Angriffe über DOM . 98
4.15 XSS in HTTP-Headern. 101
4.15.1 Angriffe der ersten Ordnung mit Headern. 101
4.15.2
4.16
4.17
Inhaltsverzeichnis
4.18
4.18.1
4.18.2
4.18.3 Ein erster Schutz gegen CSRF . 109
4.18.4 CSRF-Schutzmechanismen. 111
4.18.5 Formular-Token gegen CSRF. 112
4.18.6 Unheilige Allianz - CSRF und XSS . 113
5 SQL-Injection 115
5.1 Grundlagen.115
5.2 Auffinden von SQL-Injection-Möglichkeiten.117
5.2.1 GET-Parameter. 118
5.2.2 POST-Parameter . 119
5.2.3 Cookie-Parameter . 120
5.2.4 Server-Variablen . 121
5.3 Syntax einer SQL-Injection.124
5.3.1 Sonderzeichen in SQL . 124
5.3.2 Schlüsselwörter in SQL . 125
5.3.3 Einfache SQL-Injection . 125
5.3.4 UNION-Injections. 127
5.4 Advanced SQL-Injection. 130
5.4.1 LOAD_FILE .130
5.4.2 Denial-of-Service mit SQL-Injection.131
5.4.3 ORDER
5.5 Wie kann man sich vor SQL-Injection schützen?.133
5.5.1 Sonderzeichen maskieren.133
5.5.2 Ist Schlüsselwort-Filterung ein
wirksamer Schutz?. 133
5.5.3 Parameter
5.5.4
5.6 Fazit . 136
6 Autorisierung und Authentisierung 137
6.1 Beliebte Fehler in Login-Formularen.137
6.1.1 Falsche Request-Methode . 137
6.1.2 Falsche SQL-Abfrage. 138
6.1.3 SQL-Injection . 139
6.1.4 XSS. 140
Inhaltsverzeichnis xi|
6.2 Authentisierungssicherheit. 140
6.2.1 SSL. 141
6.2.2 Behandlung von Passwörtern . 142
6.2.3 Benutzernamen und Kennungen . 144
6.2.4 Sichere Passwörter . 144
6.2.5 Passwort-Sicherheit bestimmen. 148
6.2.6 Vergessene Passwörter . 150
6.3 Spam-Vermeidung mit CAPTCHAs. 155
7
7.1 Grundlagen . 161
7.2
7.3 Session-Speicherung. 164
7.4 Schwache Session-ID-Generierungsalgorithmen. 166
7.5 Session-Timeout. 167
7.6 Bruteforcing von
7.7 Session
7.8 Session
7.9 Zusätzliche Abwehrmethoden . 172
7.9.1 Page Ticket System. 172
7.9.2 Session-Dateien mittels Cronjob löschen. 173
7.9.3 Session-ID aus dem Referrer löschen. 173
7.10 Fazit. 174
8 Upload-Formulare 175
8.1 Grundlagen . 175
8.2 Aufbau eines Upload-Formulars. 175
8.3 PHP-interne Verarbeitung . 176
8.4 Speicherung der hochgeladenen Dateien. 177
8.5 Bildüberprüfung . 178
8.6 PHP-Code in ein Bild einfügen. 179
8.7 Andere Dateitypen überprüfen. 180
8.8 Gefährliche
8.9 Fazit. 181
xii Inhaltsverzeichnis
9 Variablenfilter mit
9.1 Überblick . 183
9.2 Installation . 184
9.3 Die Filter-API . 184
9.4 Verfügbare Filter. 186
9.4.1 Validierende Filter.186
9.4.2 Reinigende Filter.187
9.5 Zahlen prüfen und filtern .187
9.6 Boolesche Werte.189
9.7 URLs
9.8 IP-Adressen prüfen .190
9.9 Syntaxcheck für E-Mail-Adressen.192
9.10 Reinigende Filter.192
9.11 Prüfung externer Daten.193
9.12 Callback-Funktionen.194
9.13 Fazit .195
10 PHP intern 197
10.1 Fehler in PHP .197
10.1.1 File-Upload-Bug. 197
10.1.2 Unsichere (De-)Serialisierung. 198
10.1.3 Gefährliches Speicherlimit. 198
10.1.4 Speicherproblem dank htmlentities . 198
10.1.5 Bewertung. 199
10.2 Bestandteile eines sicheren Servers.199
10.3 Unix oder Windows? .200
10.4 Bleiben Sie aktuell! .201
10.5 Installation .201
10.5.1 Installation als Apache-Modul.202
10.5.2 CGI.203
10.6 suExec.205
10.7 Safe Mode.207
10.7.1 Einrichtung des Safe Mode . 208
10.7.2 safe_mode_exec_dir. 208
10.7.3 safe_mode_include_dir. 209
10.7.4 Umgebungsvariablen im Safe Mode. 209
10.7.5
Inhaltsverzeichnis xiii |
10.8 Weitere PHP-Einstellungen. 212
10.8.1 openjjasedir. 212
10.8.2 disablejunctions . 213
10.8.3 disablcclasses. 213
10.8.4 max_execution_time. 214
10.8.5 max_input_time . 214
10.8.6 memoryjimit. 214
10.8.7 Upload-Einstellungen . 215
10.8.8 allow_urljopen . 216
10.8.9
10.8.10 register_globals. 217
10.9 Code-Sandboxing mit runkit . 217
10.10 Externe Ansätze. 219
10.10.1 suPHP. 219
10.10.2 FastCGI . 223
10.10.3 Das Apache-Modul mod_suid. 225
10.11 Rootjail-Lösungen . 229
10.11.1 BSD-Rootjails. 229
10.11.2 User Mode Linux . 229
10.11.3 mod_security. 230
10.11.4 mod_chroot . 230
10.12 Fazit. 231
11 PHP-Hardening 233
11.1 Warum PHP härten? . 233
11.1.1 Buffer
11.1.2 Schutz vor Pufferüberläufen im
Suhosin-Patch. 235
11.1.3 Schutz vor Format-String-Schwachstellen. 236
11.1.4 Simulationsmodus. 237
11.1.5 Include-Schutz gegen
und Nullbytes. 237
11.1.6 Funktions-und Evaluationsbeschränkungen . 239
11.1.7 Schutz gegen
Mailheader
11.1.8 Variablenschutz . 240
11.1.9
11.1.10
11.1.11 Transparente Cookie-und
Session-Verschlüsselung . 241
11.1.12 Härtung des Speicherlimits. 241
11.1.13 Kryptographische Funktionen. 241
Inhaltsverzeichnis
11.2 Prinzipien hinter Suhosin .242
11.3 Installation .242
11.3.1 Installation des Patches .243
11.3.2 Installation der
11.4 Zusammenarbeit mit anderen Zend-Extensions .246
11.5 Konfiguration.247
11.5.1 Generelle Optionen .247
11.5.2 Log-Dateien.250
11.5.3 Alarm-Skript .253
11.5.4 Transparente Verschlüsselung.254
11.5.5 Variablenfilter.255
11.5.6 Upload-Konfiguration.257
11.6 Beispielkonfiguration .259
11.7 Fazit und Ausblick .260
12 Webserver-Filter für Apache 261
12.1 Einsatzgebiet von Filtermodulen.261
12.2 Blacklist oder Whitelist? .262
12.3 mod_security.263
12.3.1 So funktioniert's . 264
12.3.2 Gefahren durch mod_security . 264
12.3.3 Installation. 265
12.3.4 Konfiguration . 266
12.3.5 Regelwerk von mod_security. 269
12.3.6 Alarm-Skript für mod_security . 279
12.3.7 Rootjail-Umgebungen mit mod_security. 279
12.3.8 mod_security 2.0. 281
12.4 mod_parmguard.284
12.4.1 So funktioniert's . 285
12.4.2 Installation. 285
12.4.3 Webserver-Konfiguration. 287
12.4.4 XML-Whitelist manuell erstellen. 288
12.4.5 Automatische Erzeugung. 293
12.5 Fazit . 294
Inhaltsverzeichnis
Anhang 295
A
В
B.l variables^rder. 301
B.2
B.3 register_long_arrays. 302
B.4 register_argc_argv . 302
B.5 post_max_size . 303
B.6 magic_quotes_gpc . 303
B.7 magic_quotes_runtime. 303
B.8 always_populate_raw_post_data . 303
B.9 allow_url_fopen. 304
B.10 allow^urHnclude. 304
С
C.I Cross-Site
C.2 Information
C.3
C.4 SQL-Injection
C.5 HTTP Response Splitting
C.6 Cross-Site Request Forgery
C.7 Remote Command Execution
C.8 Mail-Header Injection
D
Stichwortverzeichnis 317 |
adam_txt |
Inhaltsverzeichnis
1 Einleitung 1
1.1 Über dieses Buch. 1
1.2 Was ist Sicherheit? . 3
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
1.7.3
1.7.4
1.8
1.9 PHP-Sicherheit.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
2.3 Betriebssystem erkennen. 22
2.4 PHP-Installation erkennen . 23
2.5 Datenbanksystem erkennen . 25
Inhaltsverzeichnis
2.6 Datei-Altlasten .27
2.6.1 Temporäre Dateien . 27
2.6.2
2.6.3 Dateien von Entwicklungswerkzeugen . 29
2.6.4 Vergessene oder »versteckte« PHP-Dateien. 29
2.7 Pfade.30
2.7.1 mod_speling. 30
2.7.2
2.7.3 Standardpfade. 32
2.7.4 Pfade verkürzen. 35
2.8 Kommentare aus HTML-Dateien. 35
2.9 Applikationen erkennen . 36
2.9.1 Das Aussehen/Layout. 36
2.9.2 Das Vorhandensein bestimmter Dateien . 36
2.9.3 Header-Felder . 37
2.9.4 Bestimmte Pfade . 37
2.9.5 Kommentare im Quellcode . 37
2.10
2.11 Google
2.12 Fazit . 39
3 Parametermanipulation 41
3.1 Grundlagen.41
3.2 Werkzeuge zur Parametermanipulation.44
3.2.1 Parametermanipulation mit dem Browser.44
3.2.2 Einen Proxy benutzen .47
3.3 Angriffsszenarien und Lösungen.49
3.3.1 Fehlererzeugung.49
3.3.2 HTTP
3.3.3 Remote
3.3.4 Angriffe auf Dateisystemfunktionen.57
3.3.5 Angriffe auf Shell-Ebene .58
3.3.6 Cookie
3.3.7 Manipulation von Formulardaten .60
3.3.8 Vordefinierte PHP-Variablen manipulieren.61
3.3.9 Spam über Mailformulare.61
Inhaltsverzeichnis ix
3.4 Variablen richtig prüfen . 63
3.4.1 Auf Datentyp prüfen. 64
3.4.2 Datenlänge prüfen. 65
3.4.3 Inhalte prüfen. 66
3.4.4 Whitelist-Prüfungen . 68
3.4.5 Blacklist-Prüfung. 69
3.4.6 Clientseitige Validierung. 70
3.5 register_globals . 71
3.6 Fazit. 74
4
4.1 Grenzenlose Angriffe . 75
4.2 Was ist
4.3 Warum XSS gefährlich ist . 77
4.4 Erhöhte Gefahr dank Browserkomfort. 78
4.5 Formularvervollständigung verhindern. 79
4.6 XSS in
4.7 XSS - einige Beispiele. 81
4.8 Ein klassisches XSS . 82
4.9 Angriffspunkte für XSS . 84
4.10 Angriffe verschleiern - XSS
4.11 Einfache Gegenmaßnahmen. 88
4.12 XSS verbieten, HTML erlauben - wie?. 90
4.12.1 BBCode. 91
4.12.2 HTML-Filter mit XSS-Blacklist. 92
4.12.3 Whitelist-Filtern mit »HTML
4.13 Die Zwischenablage per XSS auslesen . 97
4.14 XSS-Angriffe über DOM . 98
4.15 XSS in HTTP-Headern. 101
4.15.1 Angriffe der ersten Ordnung mit Headern. 101
4.15.2
4.16
4.17
Inhaltsverzeichnis
4.18
4.18.1
4.18.2
4.18.3 Ein erster Schutz gegen CSRF . 109
4.18.4 CSRF-Schutzmechanismen. 111
4.18.5 Formular-Token gegen CSRF. 112
4.18.6 Unheilige Allianz - CSRF und XSS . 113
5 SQL-Injection 115
5.1 Grundlagen.115
5.2 Auffinden von SQL-Injection-Möglichkeiten.117
5.2.1 GET-Parameter. 118
5.2.2 POST-Parameter . 119
5.2.3 Cookie-Parameter . 120
5.2.4 Server-Variablen . 121
5.3 Syntax einer SQL-Injection.124
5.3.1 Sonderzeichen in SQL . 124
5.3.2 Schlüsselwörter in SQL . 125
5.3.3 Einfache SQL-Injection . 125
5.3.4 UNION-Injections. 127
5.4 Advanced SQL-Injection. 130
5.4.1 LOAD_FILE .130
5.4.2 Denial-of-Service mit SQL-Injection.131
5.4.3 ORDER
5.5 Wie kann man sich vor SQL-Injection schützen?.133
5.5.1 Sonderzeichen maskieren.133
5.5.2 Ist Schlüsselwort-Filterung ein
wirksamer Schutz?. 133
5.5.3 Parameter
5.5.4
5.6 Fazit . 136
6 Autorisierung und Authentisierung 137
6.1 Beliebte Fehler in Login-Formularen.137
6.1.1 Falsche Request-Methode . 137
6.1.2 Falsche SQL-Abfrage. 138
6.1.3 SQL-Injection . 139
6.1.4 XSS. 140
Inhaltsverzeichnis xi|
6.2 Authentisierungssicherheit. 140
6.2.1 SSL. 141
6.2.2 Behandlung von Passwörtern . 142
6.2.3 Benutzernamen und Kennungen . 144
6.2.4 Sichere Passwörter . 144
6.2.5 Passwort-Sicherheit bestimmen. 148
6.2.6 Vergessene Passwörter . 150
6.3 Spam-Vermeidung mit CAPTCHAs. 155
7
7.1 Grundlagen . 161
7.2
7.3 Session-Speicherung. 164
7.4 Schwache Session-ID-Generierungsalgorithmen. 166
7.5 Session-Timeout. 167
7.6 Bruteforcing von
7.7 Session
7.8 Session
7.9 Zusätzliche Abwehrmethoden . 172
7.9.1 Page Ticket System. 172
7.9.2 Session-Dateien mittels Cronjob löschen. 173
7.9.3 Session-ID aus dem Referrer löschen. 173
7.10 Fazit. 174
8 Upload-Formulare 175
8.1 Grundlagen . 175
8.2 Aufbau eines Upload-Formulars. 175
8.3 PHP-interne Verarbeitung . 176
8.4 Speicherung der hochgeladenen Dateien. 177
8.5 Bildüberprüfung . 178
8.6 PHP-Code in ein Bild einfügen. 179
8.7 Andere Dateitypen überprüfen. 180
8.8 Gefährliche
8.9 Fazit. 181
xii Inhaltsverzeichnis
9 Variablenfilter mit
9.1 Überblick . 183
9.2 Installation . 184
9.3 Die Filter-API . 184
9.4 Verfügbare Filter. 186
9.4.1 Validierende Filter.186
9.4.2 Reinigende Filter.187
9.5 Zahlen prüfen und filtern .187
9.6 Boolesche Werte.189
9.7 URLs
9.8 IP-Adressen prüfen .190
9.9 Syntaxcheck für E-Mail-Adressen.192
9.10 Reinigende Filter.192
9.11 Prüfung externer Daten.193
9.12 Callback-Funktionen.194
9.13 Fazit .195
10 PHP intern 197
10.1 Fehler in PHP .197
10.1.1 File-Upload-Bug. 197
10.1.2 Unsichere (De-)Serialisierung. 198
10.1.3 Gefährliches Speicherlimit. 198
10.1.4 Speicherproblem dank htmlentities . 198
10.1.5 Bewertung. 199
10.2 Bestandteile eines sicheren Servers.199
10.3 Unix oder Windows? .200
10.4 Bleiben Sie aktuell! .201
10.5 Installation .201
10.5.1 Installation als Apache-Modul.202
10.5.2 CGI.203
10.6 suExec.205
10.7 Safe Mode.207
10.7.1 Einrichtung des Safe Mode . 208
10.7.2 safe_mode_exec_dir. 208
10.7.3 safe_mode_include_dir. 209
10.7.4 Umgebungsvariablen im Safe Mode. 209
10.7.5
Inhaltsverzeichnis xiii |
10.8 Weitere PHP-Einstellungen. 212
10.8.1 openjjasedir. 212
10.8.2 disablejunctions . 213
10.8.3 disablcclasses. 213
10.8.4 max_execution_time. 214
10.8.5 max_input_time . 214
10.8.6 memoryjimit. 214
10.8.7 Upload-Einstellungen . 215
10.8.8 allow_urljopen . 216
10.8.9
10.8.10 register_globals. 217
10.9 Code-Sandboxing mit runkit . 217
10.10 Externe Ansätze. 219
10.10.1 suPHP. 219
10.10.2 FastCGI . 223
10.10.3 Das Apache-Modul mod_suid. 225
10.11 Rootjail-Lösungen . 229
10.11.1 BSD-Rootjails. 229
10.11.2 User Mode Linux . 229
10.11.3 mod_security. 230
10.11.4 mod_chroot . 230
10.12 Fazit. 231
11 PHP-Hardening 233
11.1 Warum PHP härten? . 233
11.1.1 Buffer
11.1.2 Schutz vor Pufferüberläufen im
Suhosin-Patch. 235
11.1.3 Schutz vor Format-String-Schwachstellen. 236
11.1.4 Simulationsmodus. 237
11.1.5 Include-Schutz gegen
und Nullbytes. 237
11.1.6 Funktions-und Evaluationsbeschränkungen . 239
11.1.7 Schutz gegen
Mailheader
11.1.8 Variablenschutz . 240
11.1.9
11.1.10
11.1.11 Transparente Cookie-und
Session-Verschlüsselung . 241
11.1.12 Härtung des Speicherlimits. 241
11.1.13 Kryptographische Funktionen. 241
Inhaltsverzeichnis
11.2 Prinzipien hinter Suhosin .242
11.3 Installation .242
11.3.1 Installation des Patches .243
11.3.2 Installation der
11.4 Zusammenarbeit mit anderen Zend-Extensions .246
11.5 Konfiguration.247
11.5.1 Generelle Optionen .247
11.5.2 Log-Dateien.250
11.5.3 Alarm-Skript .253
11.5.4 Transparente Verschlüsselung.254
11.5.5 Variablenfilter.255
11.5.6 Upload-Konfiguration.257
11.6 Beispielkonfiguration .259
11.7 Fazit und Ausblick .260
12 Webserver-Filter für Apache 261
12.1 Einsatzgebiet von Filtermodulen.261
12.2 Blacklist oder Whitelist? .262
12.3 mod_security.263
12.3.1 So funktioniert's . 264
12.3.2 Gefahren durch mod_security . 264
12.3.3 Installation. 265
12.3.4 Konfiguration . 266
12.3.5 Regelwerk von mod_security. 269
12.3.6 Alarm-Skript für mod_security . 279
12.3.7 Rootjail-Umgebungen mit mod_security. 279
12.3.8 mod_security 2.0. 281
12.4 mod_parmguard.284
12.4.1 So funktioniert's . 285
12.4.2 Installation. 285
12.4.3 Webserver-Konfiguration. 287
12.4.4 XML-Whitelist manuell erstellen. 288
12.4.5 Automatische Erzeugung. 293
12.5 Fazit . 294
Inhaltsverzeichnis
Anhang 295
A
В
B.l variables^rder. 301
B.2
B.3 register_long_arrays. 302
B.4 register_argc_argv . 302
B.5 post_max_size . 303
B.6 magic_quotes_gpc . 303
B.7 magic_quotes_runtime. 303
B.8 always_populate_raw_post_data . 303
B.9 allow_url_fopen. 304
B.10 allow^urHnclude. 304
С
C.I Cross-Site
C.2 Information
C.3
C.4 SQL-Injection
C.5 HTTP Response Splitting
C.6 Cross-Site Request Forgery
C.7 Remote Command Execution
C.8 Mail-Header Injection
D
Stichwortverzeichnis 317 |
any_adam_object | 1 |
any_adam_object_boolean | 1 |
author | Kunz, Christopher 1979- Esser, Stefan Prochaska, Peter |
author_GND | (DE-588)13089835X (DE-588)130898376 |
author_facet | Kunz, Christopher 1979- Esser, Stefan Prochaska, Peter |
author_role | aut aut aut |
author_sort | Kunz, Christopher 1979- |
author_variant | c k ck s e se p p pp |
building | Verbundindex |
bvnumber | BV022253570 |
classification_rvk | ST 250 ST 277 |
classification_tum | DAT 461f DAT 366f |
ctrlnum | (OCoLC)180113310 (DE-599)BVBBV022253570 |
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 | 2., aktualisierte und ü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">BV022253570</controlfield><controlfield tag="003">DE-604</controlfield><controlfield tag="005">20111117</controlfield><controlfield tag="007">t</controlfield><controlfield tag="008">070202s2007 gw a||| |||| 00||| ger d</controlfield><datafield tag="015" ind1=" " ind2=" "><subfield code="a">07,N04,0048</subfield><subfield code="2">dnb</subfield></datafield><datafield tag="016" ind1="7" ind2=" "><subfield code="a">982432178</subfield><subfield code="2">DE-101</subfield></datafield><datafield tag="020" ind1=" " ind2=" "><subfield code="a">9783898644501</subfield><subfield code="c">: ca. EUR 36.00, ca. EUR 37.10 (AT), ca. sfr 62.00</subfield><subfield code="9">978-3-89864-450-1</subfield></datafield><datafield tag="020" ind1=" " ind2=" "><subfield code="a">3898644502</subfield><subfield code="c">: ca. EUR 36.00, ca. EUR 37.10 (AT), ca. sfr 62.00</subfield><subfield code="9">3-89864-450-2</subfield></datafield><datafield tag="024" ind1="3" ind2=" "><subfield code="a">9783898644501</subfield></datafield><datafield tag="035" ind1=" " ind2=" "><subfield code="a">(OCoLC)180113310</subfield></datafield><datafield tag="035" ind1=" " ind2=" "><subfield code="a">(DE-599)BVBBV022253570</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-824</subfield><subfield code="a">DE-355</subfield><subfield code="a">DE-29T</subfield><subfield code="a">DE-1051</subfield><subfield code="a">DE-M347</subfield><subfield code="a">DE-858</subfield><subfield code="a">DE-706</subfield><subfield code="a">DE-523</subfield><subfield code="a">DE-19</subfield><subfield code="a">DE-83</subfield><subfield code="a">DE-91G</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">ST 277</subfield><subfield code="0">(DE-625)143643:</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="084" ind1=" " ind2=" "><subfield code="a">DAT 461f</subfield><subfield code="2">stub</subfield></datafield><datafield tag="084" ind1=" " ind2=" "><subfield code="a">DAT 366f</subfield><subfield code="2">stub</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 ; Peter Prochaska</subfield></datafield><datafield tag="250" ind1=" " ind2=" "><subfield code="a">2., aktualisierte und überarb. Aufl.</subfield></datafield><datafield tag="264" ind1=" " ind2="1"><subfield code="a">Heidelberg</subfield><subfield code="b">dpunkt-Verl.</subfield><subfield code="c">2007</subfield></datafield><datafield tag="300" ind1=" " ind2=" "><subfield code="a">XV, 321 S.</subfield><subfield code="b">Ill.</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="4">aut</subfield></datafield><datafield tag="700" ind1="1" ind2=" "><subfield code="a">Prochaska, Peter</subfield><subfield code="e">Verfasser</subfield><subfield code="0">(DE-588)130898376</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=2894518&prov=M&dok_var=1&dok_ext=htm</subfield><subfield code="3">Inhaltstext</subfield></datafield><datafield tag="856" ind1="4" ind2="2"><subfield code="m">Digitalisierung UB Regensburg</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=015464324&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-015464324</subfield></datafield></record></collection> |
id | DE-604.BV022253570 |
illustrated | Illustrated |
index_date | 2024-07-02T16:40:17Z |
indexdate | 2024-07-20T09:11:37Z |
institution | BVB |
isbn | 9783898644501 3898644502 |
language | German |
oai_aleph_id | oai:aleph.bib-bvb.de:BVB01-015464324 |
oclc_num | 180113310 |
open_access_boolean | |
owner | DE-824 DE-355 DE-BY-UBR DE-29T DE-1051 DE-M347 DE-858 DE-706 DE-523 DE-19 DE-BY-UBM DE-83 DE-91G DE-BY-TUM |
owner_facet | DE-824 DE-355 DE-BY-UBR DE-29T DE-1051 DE-M347 DE-858 DE-706 DE-523 DE-19 DE-BY-UBM DE-83 DE-91G DE-BY-TUM |
physical | XV, 321 S. Ill. |
publishDate | 2007 |
publishDateSearch | 2007 |
publishDateSort | 2007 |
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 ; Peter Prochaska 2., aktualisierte und überarb. Aufl. Heidelberg dpunkt-Verl. 2007 XV, 321 S. Ill. 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 aut Prochaska, Peter Verfasser (DE-588)130898376 aut text/html http://deposit.dnb.de/cgi-bin/dokserv?id=2894518&prov=M&dok_var=1&dok_ext=htm Inhaltstext Digitalisierung UB Regensburg application/pdf http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=015464324&sequence=000002&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA Inhaltsverzeichnis |
spellingShingle | Kunz, Christopher 1979- Esser, Stefan Prochaska, Peter 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 ; Peter Prochaska |
title_fullStr | PHP-Sicherheit PHP/MySQL-Webanwendungen sicher programmieren Christopher Kunz ; Stefan Esser ; Peter Prochaska |
title_full_unstemmed | PHP-Sicherheit PHP/MySQL-Webanwendungen sicher programmieren Christopher Kunz ; Stefan Esser ; Peter Prochaska |
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=2894518&prov=M&dok_var=1&dok_ext=htm http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=015464324&sequence=000002&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA |
work_keys_str_mv | AT kunzchristopher phpsicherheitphpmysqlwebanwendungensicherprogrammieren AT esserstefan phpsicherheitphpmysqlwebanwendungensicherprogrammieren AT prochaskapeter phpsicherheitphpmysqlwebanwendungensicherprogrammieren |