EBOOK

Tangled Web - Der Security-Leitfaden für Webentwickler

eBook
€ 29,99
Print-Ausgabe € 36,90
 
epub eBook
Sofort lieferbar (Download)
Dezember 2012

Beschreibung

Beschreibung

Moderne Webanwendungen sind auf einem Wirrwarr von Technologien aufgebaut, die sich über lange Zeit hinweg entwickelt haben und oft zufällig zusammenwirken. Alle diese Technologien - von HTTP-Requests bis hin zu browserseitigen Skripten - haben ihre eigenen, oft subtilen Besonderheiten in puncto Sicherheit. Michal Zalewski, einer der wichtigsten Browser-Security-Experten weltweit, beschreibt in 'Tangled Web' anschaulich, wie Browser funktionieren und warum sie im Grunde unsicher sind. Dazu untersucht er das komplette Browser-Sicherheitsmodell, deckt dessen Schwachstellen auf und liefert entscheidende Informationen, wie Webentwickler ihre Applikationen besser schützen können. Zum schnellen Nachschlagen bieten die meisten Kapitel am Ende kompakte 'Spickzettel', die Ihnen helfen, sichere und robuste Webanwendungen zu entwickeln.

Inhaltsverzeichnis

1;Inhaltsübersicht;7 2;Inhalt;9 3;Geleitwort zur deutschen Ausgabe;17 4;Vorwort;19 4.1;Danksagungen;21 5;1 Sicherheit in einer Welt der Webanwendungen;23 5.1;1.1 Informationssicherheit kurz und bündig;23 5.1.1;1.1.1 Liebäugeln mit formalen Lösungen;24 5.1.2;1.1.2 Risikomanagement und IT-Sicherheit;27 5.1.3;1.1.3 Erleuchtung durch Taxonomie;29 5.1.4;1.1.4 Auf dem Weg zu praktischen Ansätzen;30 5.2;1.2 Eine kurze Geschichte des Web;31 5.2.1;1.2.1 Geschichten aus der Steinzeit: 1945 bis 1994;32 5.2.2;1.2.2 Die ersten Browserkriege: 1995 bis 1999;34 5.2.3;1.2.3 Das Zeitalter der Langeweile: 2000 bis 2003;36 5.2.4;1.2.4 Web 2.0 und die zweiten Browserkriege: 2004 und später;38 5.3;1.3 Die Entwicklung einer Bedrohung;39 5.3.1;1.3.1 Der Benutzer als Sicherheitslücke;39 5.3.2;1.3.2 Die Cloud oder die Freuden gemeinschaftlichen Lebens;40 5.3.3;1.3.3 Unvereinbare Vorstellungen;41 5.3.4;1.3.4 Browserübergreifende Interaktion: Synergie des Versagens;42 5.3.5;1.3.5 Die Aufhebung der Grenze zwischen Client und Server;44 6;Teil I: Anatomie des Web;49 6.1;2 Am Anfang war die URL;51 6.1.1;2.1 Struktur einer URL;52 6.1.1.1;2.1.1 Schema und Protokoll;52 6.1.1.2;2.1.2 Kennzeichen hierarchischer URLs;53 6.1.1.3;2.1.3 Anmeldeinformationen;54 6.1.1.4;2.1.4 Die Serveradresse;55 6.1.1.5;2.1.5 Der Serverport;56 6.1.1.6;2.1.6 Hierarchische Dateipfade;57 6.1.1.7;2.1.7 Der Query-String;57 6.1.1.8;2.1.8 Der Fragment-Identifier;58 6.1.1.9;2.1.9 Die URL im Ganzen;58 6.1.2;2.2 Reservierte Zeichen und URL-Codierung;61 6.1.2.1;2.2.1 Umgang mit Text jenseits der ASCII-Welt;63 6.1.3;2.3 Übliche URL-Schemas und ihre Funktion;67 6.1.3.1;2.3.1 Vom Browser unterstützte Protokolle für den Dokumentabruf;67 6.1.3.2;2.3.2 Protokolle für Drittanbieteranwendungen und Plug-ins;68 6.1.3.3;2.3.3 Nicht kapselnde Pseudoprotokolle;68 6.1.3.4;2.3.4 Kapselnde Pseudoprotokolle;69 6.1.3.5;2.3.5 Ein letztes Wort zur Schemaerkennung;70 6.1.4;2.4 Auflösung relativer URLs;70 6.2;3 HTTP;75 6.2.1;3.1 Die grundlegende Syntax von
HTTP;76 6.2.1.1;3.1.1 Konsequenzen aus der Unterstützung von HTTP/0.9;78 6.2.1.2;3.1.2 Besonderheiten bei der Verarbeitung von Zeilenwechseln;79 6.2.1.3;3.1.3 Proxy-Requests;80 6.2.1.4;3.1.4 Auflösung von doppelten und widersprüchlichen Headern;82 6.2.1.5;3.1.5 Durch Semikolons getrennte Header-Werte;83 6.2.1.6;3.1.6 Zeichensatz und Codierungsschema für Header;84 6.2.1.7;3.1.7 Verhalten von Referer-Headern;86 6.2.2;3.2 HTTP-Requesttypen;87 6.2.2.1;3.2.1 GET;87 6.2.2.2;3.2.2 POST;88 6.2.2.3;3.2.3 HEAD;88 6.2.2.4;3.2.4 OPTIONS;89 6.2.2.5;3.2.5 PUT;89 6.2.2.6;3.2.6 DELETE;89 6.2.2.7;3.2.7 TRACE;89 6.2.2.8;3.2.8 CONNECT;90 6.2.2.9;3.2.9 Weitere HTTP-Methoden;90 6.2.3;3.3 HTTP-Statuscodes;90 6.2.3.1;3.3.1 200-299: Erfolg;90 6.2.3.2;3.3.2 300-399: Umleitung und andere Statusmeldungen;91 6.2.3.3;3.3.3 400 - 499: Clientseitige Fehler;92 6.2.3.4;3.3.4 500-599: Serverseitige Fehler;93 6.2.3.5;3.3.5 Konsistente Verwendung der HTTP-Codes;93 6.2.4;3.4 Keepalive-Sessions;93 6.2.5;3.5 Portionsweise Datenübertragung;95 6.2.6;3.6 Caching-Verhalten;96 6.2.7;3.7 Semantik von HTTP-Cookies;98 6.2.8;3.8 HTTP-Authentifizierung;101 6.2.9;3.9 Verschlüsselung auf Protokollebene und Clientzertifikate;102 6.2.9.1;3.9.1 Extended Validation SSL;104 6.2.9.2;3.9.2 Regeln zur Fehlerbehandlung;105 6.3;4 HTML;109 6.3.1;4.1 Grundprinzipien von HTML-Dokumenten;110 6.3.1.1;4.1.1 Dokumentenparser-Modi;111 6.3.1.2;4.1.2 Der Kampf um die Semantik;113 6.3.2;4.2 Das Verhalten von HTML-Parsern;114 6.3.2.1;4.2.1 Wechselwirkungen zwischen mehreren Tags;115 6.3.2.2;4.2.2 Explizite und implizite Bedingungen;116 6.3.2.3;4.2.3 Überlebensstrategien für die HTML-Analyse;117 6.3.3;4.3 Entity Encoding;117 6.3.4;4.4 Die Verzahnung von HTTP und HTML;119 6.3.5;4.5 Hyperlinks und Einbindung externer Inhalte;121 6.3.5.1;4.5.1 Einfache Links;121 6.3.5.2;4.5.2 Formulare und durch Formulare ausgelöste Requests;122 6.3.5.3;4.5.3 Frames;124 6.3.5.4;4.5.4 Typspezifisches Einbinden von Inhalten;125 6.3.5.5;4.5.5 Ein Hinweis zum T
hema CSRF;127 6.4;5 CSS;131 6.4.1;5.1 Grundlagen der CSS-Syntax;132 6.4.1.1;5.1.1 Eigenschaften definieren;133 6.4.1.2;5.1.2 @-Direktiven und XBL-Bindings;134 6.4.1.3;5.1.3 Wechselwirkungen mit HTML;135 6.4.2;5.2 Risiken der Parser-Resynchronisierung;135 6.4.3;5.3 Zeichencodierung;136 6.5;6 JavaScript im Browser;141 6.5.1;6.1 Grundmerkmale von JavaScript;142 6.5.1.1;6.1.1 Die Skriptverarbeitung;143 6.5.1.2;6.1.2 Steuerung der Ausführungsreihenfolge;147 6.5.1.3;6.1.3 Möglichkeiten zum Inspizieren von Code und Objekten;148 6.5.1.4;6.1.4 Die Laufzeitumgebung anpassen;149 6.5.1.5;6.1.5 JSON und andere Arten der Datenserialisierung;151 6.5.1.6;6.1.6 E4X und andere Syntaxerweiterungen;154 6.5.2;6.2 Standard-Objekthierarchie;155 6.5.2.1;6.2.1 Das DOM;158 6.5.2.2;6.2.2 Zugriff auf andere Dokumente;160 6.5.3;6.3 Zeichencodierung im Skript;161 6.5.4;6.4 Möglichkeiten zum Einbinden von Code und Verschachtelungsrisiken;162 6.5.5;6.5 Totgesagte leben länger: Visual Basic Script;164 6.6;7 Nicht-HTML-Dokumente;167 6.6.1;7.1 Klartextdateien;167 6.6.2;7.2 Bitmap-Bilder;168 6.6.3;7.3 Audio und Video;169 6.6.4;7.4 XML-Dokumente;169 6.6.4.1;7.4.1 Allgemeine XML-Darstellung;170 6.6.4.2;7.4.2 SVG;172 6.6.4.3;7.4.3 MathML;173 6.6.4.4;7.4.4 XUL;173 6.6.4.5;7.4.5 WAP und WML;174 6.6.4.6;7.4.6 RSS- und Atom-Feeds;175 6.6.5;7.5 Ein Hinweis zu nicht darstellbaren Dateitypen;176 6.7;8 Inhalte mit Browser-Plug-ins darstellen;179 6.7.1;8.1 Plug-ins aufrufen;179 6.7.1.1;8.1.1 Die Gefahren bei der Verarbeitung von Inhaltstypen für Plug-ins;181 6.7.2;8.2 Helfer für die Dokumentdarstellung;183 6.7.3;8.3 Plug-in-basierte Anwendungsframeworks;184 6.7.3.1;8.3.1 Adobe Flash;185 6.7.3.2;8.3.2 Microsoft Silverlight;188 6.7.3.3;8.3.3 Sun Java;189 6.7.3.4;8.3.4 XBAP;190 6.7.4;8.4 ActiveX-Steuerelemente;191 6.7.5;8.5 Mit anderen Plug-ins leben;192 7;Teil II: Sicherheitsfeatures von Browsern;197 7.1;9 Inhalte isolieren;199 7.1.1;9.1 SOP für das DOM;199 7.1.1.1;9.1.1 document.domain;202 7.1.1.2;9.1.2 postMessag
e(...);203 7.1.1.3;9.1.3 Wechselwirkung mit sensiblen Browserdaten;205 7.1.2;9.2 SOP für XMLHttpRequest;206 7.1.3;9.3 SOP für Web Storage;208 7.1.4;9.4 Sicherheitsrichtlinie für Cookies;209 7.1.4.1;9.4.1 Der Einfluss von Cookies auf die SOP;211 7.1.4.2;9.4.2 Probleme mit Domäneneinschränkungen;212 7.1.4.3;9.4.3 Die ungewöhnliche Gefahr von localhost;213 7.1.4.4;9.4.4 Cookies und legitimes DNS-Hijacking;215 7.1.5;9.5 Sicherheitsregeln für Plug-ins;215 7.1.5.1;9.5.1 Adobe Flash;216 7.1.5.2;9.5.2 Microsoft Silverlight;220 7.1.5.3;9.5.3 Java;221 7.1.6;9.6 Umgang mit unklaren oder unerwarteten Ursprungsangaben;222 7.1.6.1;9.6.1 IP-Adressen;222 7.1.6.2;9.6.2 Hostnamen mit zusätzlichen Punkten;223 7.1.6.3;9.6.3 Nicht vollständig qualifizierte Hostnamen;223 7.1.6.4;9.6.4 Lokale Dateien;224 7.1.6.5;9.6.5 Pseudo-URLs;225 7.1.6.6;9.6.6 Browsererweiterungen und Benutzerschnittstelle;226 7.1.7;9.7 Andere Verwendungen für Origin-Angaben;226 7.2;10 Ursprungsvererbung;229 7.2.1;10.1 Ursprungsvererbung für about:blank;229 7.2.2;10.2 Ursprungsvererbung für data:-URLs;232 7.2.3;10.3 Ursprungsvererbung für javascript:- und vbscript:-URLs;234 7.2.4;10.4 Ein Hinweis zu eingeschränkten Pseudo-URLs;236 7.3;11 Die Welt außerhalb von SOPs;239 7.3.1;11.1 Fenster- und Frame-Interaktionen;240 7.3.1.1;11.1.1 Navigationsziele vorhandener Dokumente ändern;240 7.3.1.2;11.1.2 Unerwünschtes Framing;246 7.3.2;11.2 Domänenübergreifendes Einbinden von Inhalten;249 7.3.2.1;11.2.1 Ein Hinweis zu ursprungsübergreifenden Unterressourcen;251 7.3.3;11.3 Datenschutzrelevante Seitenkanäle;252 7.3.4;11.4 Weitere SOP-Lücken und ihre Anwendungsfälle;254 7.4;12 Sonstige Schlupflöcher;257 7.4.1;12.1 Navigation in sensiblen Schemas;257 7.4.2;12.2 Zugriff auf interne Netzwerke;259 7.4.3;12.3 Verbotene Ports;261 7.4.4;12.4 Einschränkungen für Third-Party-Cookies;263 7.5;13 Mechanismen zur Inhaltserkennung;267 7.5.1;13.1 Dokumenttypen erkennen;268 7.5.1.1;13.1.1 Nicht wohlgeformte MIME-Typen;269 7.5.1.2;13.1.2 Besondere
Werte für den Inhaltstyp;270 7.5.1.3;13.1.3 Nicht erkannte Inhaltstypen;272 7.5.1.4;13.1.4 Defensive Verwendung des Content-Disposition-Headers;274 7.5.1.5;13.1.5 Inhaltsdirektiven für Unterressourcen;276 7.5.1.6;13.1.6 Downloads und andere Nicht-HTTP-Inhalte;277 7.5.2;13.2 Zeichensätze erkennen;278 7.5.2.1;13.2.1 BOM: Kennzeichnung der Bytereihenfolge;281 7.5.2.2;13.2.2 Vererbung und Überschreiben von Zeichensätzen;282 7.5.2.3;13.2.3 Markup-gesteuerte Zeichensätze für Unterressourcen;283 7.5.2.4;13.2.4 Nicht-HTTP-Dateien erkennen;285 7.6;14 Umgang mit schädlichen Skripten;289 7.6.1;14.1 Denial-of-Service-Angriffe;290 7.6.1.1;14.1.1 Einschränkungen für Ausführungszeit und Speichernutzung;291 7.6.1.2;14.1.2 Verbindungseinschränkungen;292 7.6.1.3;14.1.3 Pop-up-Filter;294 7.6.1.4;14.1.4 Einschränkung der Verwendung von Dialogen;295 7.6.2;14.2 Probleme bei Positionierung und Darstellung von Fenstern;297 7.6.3;14.3 Timing-Attacken auf Benutzerschnittstellen;300 7.7;15 Webseiten mit speziellen Berechtigungen;305 7.7.1;15.1 Vom Browser und von Plug-ins gesteuerte Zugriffsrechte;306 7.7.1.1;15.1.1 Hart codierte Domänen;307 7.7.2;15.2 Formulargestützte Passwortmanager;308 7.7.3;15.3 Das Zonenmodell des Internet Explorer;310 7.7.3.1;15.3.1 Mark of the Web und Zone.Identifier;313 8;Teil III: Ein Blick in die Zukunft;317 8.1;16 Neue und zukünftige Sicherheitsfunktionen;319 8.1.1;16.1 Frameworks zur Erweiterung des Sicherheitsmodells;320 8.1.1.1;16.1.1 Domänenübergreifende Requests;320 8.1.1.2;16.1.2 XDomainRequest;324 8.1.1.3;16.1.3 Andere Verwendungen des Origin-Headers;325 8.1.2;16.2 Frameworks zur Einschränkung des Sicherheitsmodells;326 8.1.2.1;16.2.1 Content Security Policy;327 8.1.2.2;16.2.2 Sandbox-Frames;332 8.1.2.3;16.2.3 Strict Transport Security;335 8.1.2.4;16.2.4 Private Browsing;337 8.1.3;16.3 Andere Entwicklungen;338 8.1.3.1;16.3.1 Browserinterne HTML-Filterung;338 8.1.3.2;16.3.2 XSS-Filter;340 8.2;17 Weitere wichtige Browsermechanismen;345 8.2.1;17.1 Vorschläge
für URLs und Protokolle;345 8.2.2;17.2 Funktionen auf Inhaltsebene;348 8.2.3;17.3 I/O-Schnittstellen;350 8.3;18 Allgemeine Schwachstellen im Web;351 8.3.1;18.1 Spezifische Schwachstellen von Webanwendungen;351 8.3.1.1;18.1.1 Cross-Site Request Forgery (CSRF, XSRF oder Sea-Surf);351 8.3.1.2;18.1.2 Cross-Site Script Inclusion (XSSI);352 8.3.1.3;18.1.3 Cross-Site-Scripting (XSS);352 8.3.1.4;18.1.4 Header Injection/Response Splitting;352 8.3.1.5;18.1.5 Mixed Content;353 8.3.1.6;18.1.6 Open Redirection;353 8.3.1.7;18.1.7 Referrer-Leaks (Referrer Leaking);353 8.3.2;18.2 Probleme beim Design von Webanwendungen;354 8.3.2.1;18.2.1 Cache Poisoning;354 8.3.2.2;18.2.2 Clickjacking;354 8.3.2.3;18.2.3 Content-Sniffing/Charset-Sniffing;354 8.3.2.4;18.2.4 Cookie Forcing/Cookie Injection;354 8.3.2.5;18.2.5 DoS-Angriffe (Denial of Service);355 8.3.2.6;18.2.6 Frame Busting;355 8.3.2.7;18.2.7 HTTP-Downgrades;355 8.3.2.8;18.2.8 Network Fenceposts;355 8.3.3;18.3 Häufige Probleme bei serverseitigem Code;356 8.3.3.1;18.3.1 Buffer Overflow;356 8.3.3.2;18.3.2 Command-Injection (SQL, Shell, PHP usw.);356 8.3.3.3;18.3.3 Directory/Path Traversal;357 8.3.3.4;18.3.4 File Inclusion;357 8.3.3.5;18.3.5 Format-String-Schwachstellen;357 8.3.3.6;18.3.6 Integer Overflow;358 8.3.3.7;18.3.7 Schwachstellen in der Pointer-Arithmetik;358 8.4;Epilog;359 9;Teil IV: Anhang;361 9.1;Literatur;363 9.2;Index;375


Portrait

Michal Zalewski ist international anerkannter Experte für Informationssicherheit und Verfasser zahlreicher wegbereitender Forschungsarbeiten im Bereich der IT-Security. Er hat Hunderte bedeutende Sicherheitslücken entdeckt, und sein Name taucht regelmäßig auf den Listen der einflussreichsten Sicherheitsexperten auf. Er veröffentlichte zahlreiche wichtige Forschungsarbeiten sowie "Googles 'Browser Security Handbook'. Sein erstes Buch 'Silence on the Wire' (No Starch Press) befasste sich mit der Sicherheit von Netzwerken.Mario Heiderich begleitete die deutsche Ausgabe als Fachberater. Er forscht als Post-Doc für die Ruhr-Universität in Bochum und beschäftigt sich intensiv mit HTML5-, SVG- sowie Browser-Sicherheit. Als Gründer der Beraterfirma Cure53 arbeitet er zudem für diverse internationale Firmen und Organisationen und findet Lücken in deren Applikationen und Webauftritten. Für Microsoft überprüft er den Internet Explorer 10 und andere Tools in puncto Sicherheit.

Pressestimmen

Ich empfehle, dieses Buch zu lesen, wenn Sie viel - und ich meine in der Tat: viel - darüber wissen wollen, wie vermurkst Webbrowser, Protokolle und verwandte Technologien wirklich sind. (Richard Bejtlich, TaoSecurity)
Pflichtlektüre für jeden Webentwickler (packetstormsecurity.org)
Eine gründliche und umfassende Beschreibung von einem der führenden Experten im Bereich der Browser-Sicherheit (Tavis Ormandy, Google Inc.)
Für jeden, der mit der Programmierung von Webseiten zu tun hat, sollte [dieses Buch] Pflichtlektüre sein. (Ben Rothke, Slashdot)

Technik

Dieses eBook wird im epub-Format geliefert und ist mit einem Wasserzeichen versehen. Sie können dieses eBook auf vielen gängigen Endgeräten lesen.

Sie können dieses eBook auf vielen gängigen Endgeräten lesen.

Für welche Geräte?
Sie können das eBook auf allen Lesegeräten, in Apps und in Lesesoftware öffnen, die epub unterstützen:

  • tolino Reader
    Laden Sie das eBook direkt auf dem Reader im eBook.de-Shop herunter oder übertragen Sie das eBook auf Ihr tolino Gerät mit einer kostenlosen Software wie beispielsweise Adobe Digital Editions.

  • Sony Reader und andere eBook Reader
    Laden Sie das eBook direkt auf dem Reader im eBook.de-Shop herunter oder übertragen Sie es mit der kostenlosen Software Sony READER FOR PC/Mac oder Adobe Digital Editions.

  • Tablets und Smartphones
    Installieren Sie die eBook.de READER App für Android und iOS oder verwenden Sie eine andere Lese-App für epub-eBooks.

  • PC und Mac
    Lesen Sie das eBook direkt nach dem Herunterladen mit einer kostenlosen Lesesoftware, beispielsweise Adobe Digital Editions Sony READER FOR PC/Mac.

Die eBook-Datei wird beim Herunterladen mit einem nicht löschbaren Wasserzeichen individuell markiert, sodass die Ermittlung und rechtliche Verfolgung des ursprünglichen Käufers im Fall einer missbräuchlichen Nutzung der eBook-Datei möglich ist.

Bitte beachten Sie: Dieses eBook ist nicht auf Kindle-Geräten lesbar.

Ihr erstes eBook?
Hier erhalten Sie alle Informationen rund um die digitalen Bücher für Neueinsteiger.

EAN: 9783864912399
Untertitel: Deutsche Ausgabe - Aktualisiert und erweitert von Mario Heiderich.
Verlag: dpunkt.verlag
Erscheinungsdatum: Dezember 2012
Seitenanzahl: 392 Seiten
Format: epub eBook
Kopierschutz: Wasserzeichen
Es gibt zu diesem Artikel noch keine Bewertungen.Kundenbewertung schreiben