Click here to check if anything new just came in.
December 13 2010
Angelesen: Sichere Webanwendungen – Das Praxishandbuch
Ich liebe das Entwickeln. Vor allem, wenn es sich um Webanwendungen in PHP handelt. PHP ist klasse. Es ist leicht zu lernen, hat einen großen Funktionsumfang, mit dem sich die meisten vorstellbaren Aufgaben erledigen lassen. Leicht beherrsch- und auch recht schnell lernbar.
Doch wie alles im Leben hat PHP auch eine andere Seite. Denn das Konzept der Einfachheit geht auf Kosten der Sicherheit. Schnell ist ein Skript geschrieben, welches Dateien hochladen kann oder womit man Daten in einer Datenbank einfügt und abruft. Und genauso schnell, wenn nicht schneller, ist auch eine Sicherheitslücke drin. Die möglichen Angriffszenarien sind vielfältig und reichen von XSS, CSRF, RFI, LFI bis hin zur SQL – Injection.
Für den Laien reichlich kryptische Begriffe, für denjenigen, der sich schon mal mit der Sicherheit von Webapplikationen beschäftigt hat, ein etwas vorstellbarerer Begriff. Ich zähle mich eher zu den letztgenannten Menschen. Über Sicherheitslücken in Webanwendungen hatte ich hier und da schon mal gelesen, aber richtig tiefgehendes Wissen besaß ich bisher nicht. Deshalb griff ich auch gleich zu, als ich dieses Buch in der Unibibliothek zufällig sah.
Meine Befürchtungen waren, dass mich jetzt sehr trockener Stoff erwarten würde, teils vielleicht tiefgehend theoretisch und folglich schwer vorstellbar. Aber das Buch hält, was es verspricht: es ist ein Praxishandbuch. Und somit werden ausführlich aber nicht zu praxisfremd die verschiedenen Aspekte der Websicherheit erklärt. Jederzeit haben die Autoren die Praxis im Blick. So wird nicht nur erklärt, wie Sicherheitslücken entstehen, sondern auch, was für eine Auswirkung ein Angriff über solche Lücken haben kann. Grade Leuten wie mir, die Cross Site Scripting (kurz: XSS) für harmlose Spielereien gehalten haben, wird der Respekt vor solch scheinbar harmlosen Sicherheitslücken neu gelehrt. Denn was mit dem Erzeugen einer Alarmbox per eingeschleusten JavaScript anfängt, kann schnell in einem – ebenfalls per JavaScript eingeschleusten – falschen Loginbereich enden, der Logindaten auf der Originalseite abphisht. Und das ist nur ein Kapitel des Buches.
Weiter wird die Absicherung von Datenbankzugriffen beleuchtet und einem nahegelegt, warum Formulare immer in vielerlei Hinsicht kontrolliert werden sollten.
Und wer sich schon immer gefragt hat, was Charsets sind bzw. warum ausgerechnet die ein riesiges Sicherheitsproblem darstellen können, sollte spätestens jetzt zu diesem Buch greifen.
Kurzum: enttäuscht wird man von diesem Buch definitiv nicht. Denn das Buch geht auch jenseits der vielen Standardtipps zur Absicherung von Webanwendungen, die man im Internet zuhauf findet. Denn nicht immer reicht es, die gängigen Funktionen wie “html_special_chars()”, “html_entities()” und “strip_tags()” zu nutzen wie häufig im Internet erklärt wird. Schnell können diese Funktionen genutzt werden, um sich bösartigen Code von diesen Funktionen zusammensetzen und ausführen zu lassen. Grundsätzlich werden die meisten gängigsten Abwehrmechanismen genauer beleuchtet und meist kommt dabei wenig gutes zum Vorschein.
Die Autoren werfen also nicht nur ein paar Begriffe in den Raum und schlagen halbherzig irgendwelche Funktionen vor. Stattdessen fordern sie den Leser selber auf, sich Gedanken zu machen, wie man an welchen Stellen im Code am sinnvollsten vorgeht bzw. was das sinnvollste Verfahren zur Validierung und Absicherung von User-eingaben ist.
Das Buch selbst ist dabei halb-modular aufgebaut. So gehen die Kapitel sukzessive tiefer in die Materie ein und stellen den Fokus mit der Zeit immer mehr auf die konkrete Praxis. Wer allerdings weniger geduldig ist, kann auch gleich in die Kapitel direkt einsteigen. Meist wird einem die Problematik kurz erklärt – eventuell auf tiefergehende Kapitel verwiesen – und dann am konkreten Beispiel aufgezeigt. Die Texte selbst sind interessant und angenehm lesbar geschrieben und enthalten zahlreiche weitergehende Links. Nie kommt man wirklich ins Stocken und sieht den Wald vor lauter Bäumen nicht mehr. Dies ist zwar nicht immer so – stellenweise gerät das Kapitel über Charsets dann doch einen Tick zu trocken – langweilig wird es aber nie.
Wer vom Buch allerdings erwartet danach der Überhacker zu sein, der Webseiten binnen von Minuten knackt, wird schwer enttäuscht. Erstmal ist das nicht die Zielgruppe der Autoren. Das sind nämlich Webentwickler, die sichere Anwendungen schreiben wollen, die dazu noch eine hohe Usability aufweisen, sodass dem User nicht tausend Steine beim Bedienen der Seite in den Weg gelegt werden.
Als nächstes ist es vor allem die unsichere Rechtslage in Deutschland – genannt sei hier der “Hackerparagraf” §202 – die ein tieferes, konkreteres Aufzeigen von Sicherheitslücken unmöglich macht. Aber das muss das Buch auch nicht. So wie es aktuell im Buch umgesetzt wurde reicht es auch vollkommen, damit man immer weiß, warum bzw. wie genau eine Sicherheitslücke funktioniert.
Wer also Webanwendungen verantwortungsvoll und benutzerfreundlich umsetzen will und/oder sich für das Thema “Websicherheit” schon immer interessiert hat, wird mit dem Buch seine wahre Freude haben bzw. nicht enttäuscht werden. Umfangreich aber nicht zu tiefgehend werden alle wichtigen Sicherheitsaspekte einer Webanwendung beschrieben. Auch muss man keine Angst haben mit abstraktem Wissen allein gelassen zu werden. So ziemlich immer werden die Thematiken anhand von PHP – Code aufgezeigt. Nie hat man das Gefühl nicht zu wissen, warum die Autoren sich jetzt diesem oder jenem Sicherheitsaspekt verschrieben haben. Und auch Befürchtungen, man würde ja nur Tipps zusammentragen, die man überall im Internet finden kann, können getrost beiseite gelegt werden. Diese werden eher kritisch hinterfragt, als blindlings als ultima ratio empfohlen zu werden.
Für mich zählt dieses Buch zur Grundlektüre, wenn es darum geht, Webanwendungen sicher, stabil und – vor allen Dingen – professionell zu schreiben und daher möchte ich es auch allen, die mit Webentwicklung zu tun haben und mit der Sicherheit eben jener noch nicht so stark vertraut sind, ans Herz legen.
Eine Leseprobe findet ihr hier.
