Archive for the ‘Buchvorstellung’ tag
Extending and Embedding PHP
Im Februar habe ich von Andre das Buch Extending and Embedding PHP von Sara Golemon angeboten bekommen, und da ich noch keinen tieferen Blick in die Erstellung von PHP Extensions geworfen habe, habe ich zugeschlagen. Wie man bei Amazon lesen kann ist es DAS Standard-Buch wenn es um PHP Erweiterungen geht. Allgemein gibt es über die Innereien von PHP nur wenig Literatur, umso interessantere Einblicke gibt das Buch.
Die 410 Seiten beginnen mit einem Überblick über den PHP Lebenszyklus. Wie verhält sich PHP im CLI Modus, in einer Multi-Prozess-Umgebung, in einer threaded-Umgebung oder wenn PHP in eine andere Applikation eingebettet wird? Es gibt definierte Initialisierungspunkte, in die sich eine Extension einhängen kann (bzw. muss), und eine threaded Umgebung ist nicht ganz problemfrei wenn es um Datenzugriff etc. geht. Auf jeden Fall interessante Einblicke, was PHP so beim „Start“ tut.
Softwarequalität in PHP Projekten
Ein deutsches PHP Buch zum Thema Softwarequalität, von wem könnte das wohl sein? Von den 20 großen PHP-Experten in Deutschland sind mindestens 8 an dem Buch Softwarequalität in PHP Projekten beteiligt. Autoren sind Sebastian Bergmann und Stefan Priebsch, aber es gibt auch große Co-Autoren-Kapitel von Benjamin Eberlei (direct:effekt), Tobias Schlitt, Kore Nordmann und Manuel Pichler (alle drei Qafoo GmbH), Lars Jankowfsky (swoodoo) und Arne Blankerts (thePHP.cc). Alles bekannte Namen auf PHP Konferenzen. Weitere Kapitel stammen von Robert Lemke und Karsten Dambekalns (beide TYPO3 Association), Christiane Philipps und Max Horváth (beide VZnet Netzwerke) sowie Sebastian Nohn (Ligatus GmbH) und Jens Grochtdreis. Aber auch einige englisch sprachige Experten kommen zu Wort, beispielsweise Matthew Weier O’Phinney (Zend), Fabien Potencier (Sensio Labs), Brian Shire (Facebook) und Michael Lively Jr (SellingSource). Das Geleitwort stammt von Andi Gutmans (CEO von Zend).
Weiterlesen »
Buchvorstellung: PHP Sicherheit
Ein weiteres Werk von meinem Berg ist durchgearbeitet: Das 333 Seiten starke Standard-Werk zu „PHP Sicherheit“ von Christopher Kunz und Security-Guru Stefan Esser, den viele wahrscheinlich von seinem „Month of PHP Bugs“ oder der PHP-Erweiterung Suhosin kennen. Vor mir liegt die 3. Auflage aus dem Jahr 2008, und ich kann auch schon mal vorweg nehmen, dass die Themen heute noch brandaktuell sind und wahrscheinlich durch 5.3 keine gravierenden neuen Tipps dazugekommen wären.
Was erwartet man bei einem solchen Titel? Eine Liste von PHP-Core-Sicherheitslücken, Hinweise wie „vertraue keinen Usereingaben“, oder Aussagen „PHP ist garnicht so unsicher wenn man es richtig benutzt“? Ja, unter anderem, und noch viel mehr.
Das Inhaltsverzeichnis liest sich wie eine Offenbarung, wirklich alle wichtigen Schlagwörter sind vertreten und machen Lust auf Details. Zuerst gehen die Autoren auf allgemeine Sicherheitsprinzipien ein, helfen dabei wie man seinem Chef erklärt warum Sicherheit viel wert ist und Zeit sowie Geld kosten darf (und muss!). Wichtige Mailinglisten wie Full Disclosure und BugTraq werden genannt, um immer auf dem Laufenden zu sein.
Im zweiten Kapitel werden Methoden aufgezeigt, wie Angreifer Informationen über Webserver, Datenbankversionen, PHP-Versionen und -Erweiterungen, verwendete Software, Pfade usw. sammeln und ausnutzen. Im darauf folgenden Kapitel werden Möglichkeiten erläutert, wie Angreifer $_GET, $_POST, $_COOKIE und sogar $_SERVER Variablen manipulieren, um Angriffe wie „HTTP Response Splitting“, „Remote Command Execution“, „Cookie Poisioning“, „Mail-Header-Manipulation“ und vieles mehr durchführen können. Natürlich werden auch Lösungen präsentiert.
(Quelle: http://projects.webappsec.org/Web-Application-Security-Statistics#Summary)
Ein ganzes Kapitel beschäftigt sich dann mit dem Web-Sicherheitsproblem Nummer 1: Cross-Site Scripting (CSS/XSS) inklusive dem Thema „Cross-Site Request Forgery“, sowie der Nummer 3: SQL Injection. Das nächste Kapitel beschäftigt sich mit Authentisierung/Authentifizierung. Ein weiteres Kapitel umfasst das Thema Session (also u.a. Session Bruteforcing, Hijacking, Fixation). Jeweils gibt es auch Anleitungen, wie man diese Gefahren abwehrt.
Dann beginnen die Kapitel, die sich mit grundsätzlichen Lösungen zur Härtung der Installation beschäftigen: die PHP-Extension ext/filter wird erläutert, suExec, der Safe-Mode, open_basedir, Code-Sandboxing mit runkit, mod_chroot und vielen vielen Einstellungen und Modulen mehr.
Das Kapitel 11 beschäftigt sich, man hätte es fast vermisst, mit Suhosin. Installation, Konfiguration und Nutzen werden umfassend erläutert. Das letzte Kapitel bilden die Filtermodule mod_security und mod_parmguard. Doch das Buch ist noch nicht am Ende, im Anhang befinden sich noch Checklisten zu sicheren Webapplikationen, die wichtigen Optionen der php.ini zusammengefasst sowie die Liste aller aktuellen Gefahren, denen man sich stellt im Internet.
Tja, was soll ich sagen, es ging durch wie Butter. Die Grundlagen sind natürlich extrem wichtig, um die Auswirkungen zu verstehen und das Vorhandensein der Lücken in der eigenen Software prüfen zu können. Ich wette, dass dem ein oder anderen Leser beim Durcharbeiten der Satz „Oha, meine Anwendung ist dagegen anfällig“ durch den Kopf geht. Interessant finde ich aber auch die Checkliste, die jeder PHP-Programmierer (eigentlich jeder Webentwickler) bei einem (Re)Launch durchgehen sollte, solch eine Liste fehlt einfach, um sie methodisch Punkt für Punkt durchgehen zu können.
Voraussetzung zum Verständnis ist natürlich ein gewisses Vorwissen im PHP-Bereich sowie ein selbst installierter Webserver, ohne ein paar Grundlagen in den Bereichen versteht man die Auswirkungen von vielen Dingen wahrscheinlich nicht. Dieses Grundlagenbuch sollte jeder gelesen haben, wenn dann noch alle gewissenhaft die Lösungen befolgen wäre das Web um vieles sicherer. Ich überlege gerade, was ich zu meckern hätte… aber mir fällt nichts ein. Keine Rechtschreibfehler, praxisnahe Beispiele, Vollständigkeit. Bin sprachlos.
Pflichtlektüre!
Buchvorstellung: PHP Design Patterns
Vor einigen Wochen habe ich mir ein Buch zugelegt welches ich schon lange lesen wollte: PHP Design Patterns von Stephan Schmidt aus dem O’Reilly Verlag. Interessant ist vor allem die vor mir liegende 2. Auflage, die nochmal umfassend aktualisiert wurde und nun voll auf PHP 5.3 abgestimmt ist.
Auf den ersten Seiten wird auf die Objektorientierung von PHP und die neuen Features von PHP 5.3 eingegangen, unter anderem Namespaces, Lambda-Funktionen, Closures, Late Static Binding und Interzeptor-Methoden. Alle Beispiele im Buch beinhalten auch Namespace-Anweisungen. Wer sich dort sehr fit fühlt kann das Kapitel überspringen, aber eine solch gute Zusammenfassung sollte man eigentlich zu mindestens schnell überfliegen.