Michael's book list

Michael's book list

Tangled Web

(2013-08-23)

Da schwärmt ein Web-Designer und HTML5-Trainer, wie kurz die Deklaration des Doctypes nun geworden sei. Und überhaupt, welche Elemente alles fortfallen könnten, um immer noch im Browser dargestellt zu werden. Und wie Ladezeiten durch diese Verkürzung minimiert werden könnten.

Nun, zum einen sollte das Markup deutlich weniger Raum als der Inhalt beanspruchen und somit bei den Ladezeiten nur relativ gering ins Gewicht fallen, zum anderen sind unvollständige oder fehlerhaft geschachtelte Tags, wie sie die Browser tolerieren, aus Sicht eines Softwareentwicklers grausam. Doch was hat dies mit vorliegendem Buch zu tun?

Michael Zalewski hat vor allem eines geleistet: Er hat Browser und ihr Verhalten untersucht.Und in seinem Sicherheits-Leitfaden für Webentwickler beschreibt er alle Fallstricke auf die es bei der Darstellung einer Seite zu achten gilt. So schön es sein mag, wenn Browser unvollständige Tags vervollständigen, so problematisch kann dies sein. In seinem Buch zeigt der Autor, wie bestimmte Konstellationen zu merkwürdigen Resultaten führen, teilweise einfach nur ziemlich kurios, teilweise aber durchaus sicherheitsrelevant. Wer nicht bereits jetzt XHTML entwickelt, wird dies nach der Lektüre tun. So erzwingt der XML-Parser des Browsers zumindest ein syntaktisch korrektes HTML und eliminiert so schon einige sicherheitstechnisch relevante Probleme.

In seinem Buch startet der Autor die Einführung in das Thema mit einem kurzen Abriss der Geschichte des Webs und den möglichen Bedrohungen, immer im Hinblick auf die Darstellung im Browser. Die Verbreitung von Schadsoftware auf anderen Wegen, z.B. Mail, ist also nicht Gegenstand des Buchs.

Im Teil „Anatomie des Web“ beleuchtet Zalewski einzelne Bestandteile. Los geht es dabei mit dem Aufbau der URL. Diese besteht bekanntlich aus mehreren Teilen, wie Protokoll, Server, Port, Pfad und Query-String. Aber auch eine Anmeldeinformation kann enthalten sein. In diesem Zusammenhang zeigt der Autor, wie bei geschicktem Aufbau der URL diese so gestaltet werden kann, die wahre Herkunft zu verschleiern.

Weitere Themen dieses Teils sind HTTP und HTML. Naturgemäß deutlich aufwendiger als eine einfache URL, fallen die Kapitel auch entsprechend umfangreicher aus. Protokoll und Sprachen werden im Detail erläutert und auch hier jeweils mögliche Gefahren aufgezeigt. Weiter geht es mit CSS, JavaScript und anderen Inhalten, wie sie dann beispielsweise durch Plugins dargestellt werden. Immer wieder gibt es auch hier Hinweise auf Fehlinterpretationen und deren Vermeidung.

Im folgenden Teil geht es dann um die Sicherheitsfeatures von Browsern. Was hat es mit der Same-Origin Policy auf sich? Wo liegen deren Grenzen und Fallstricke? Wie erhält sich diese im Hinblick auf Cookies, Ursprungsvererbung etc.? Bei der Lektüre wird klar, dass dieses Sicherheitsfeature nicht unbedingt das Beste ist, dass auch hier Gefahren drohen. Und so gibt es hier, wie auch bei fast allen anderen Kapiteln am Ende immer einen Spickzettel für Webentwickler, eine Checkliste, wie mit den angesprochenen Themen umzugehen ist. Und an einigen Stellen zeigt sich: So wie die Sicherheitsarchitektur des Web derzeit ausgelegt ist, lassen sich bestimmte Probleme nur mildern, nicht aber beseitigen. So wirft der Autor auch einen Blick in die Zukunft, auf neue oder künftige Sicherheitsfunktionen und listet allgemeine Schwachstellen auf.

Das Buch ist recht locker geschrieben und unterstützt den Leser mit Einschüben und Code. Es liefert eine Fülle von Informationen, von denen ein großer Teil auch den gestandenen Webentwickler erstaunen bis erschrecken dürfte. Somit ist es sicherlich eines der vollständigsten Bücher zu Browserverhalten- und Sicherheit. Auch wenn der Autor an einigen Stellen offen lässt, ob eine (Fehl-)Interpretationen nur eine harmlose Merkwürdigkeit oder ein echtes Sicherheitsproblem darstellt, sind die gewonnen Erkenntnisse durchaus lohnenswert.


Title

Tangled Web

Subtitle Der Security-Leitfaden für Webentwickler
Author(s) Michael Zalewski
Publisher, Year dpunkt, 2012
Language German
ISBN 978-3-86490-002-0