PHP Conference - Teil 2 (Mittwoch)

Diesmal fahren wir mit der Bahn, denn die ist billiger als das Parkhaus, und kommen gerade noch rechtzeitig zu heutigen Keynote an. Diese trägt den Titel „Re-architecting the web with HTML 5 Communication“. In dem sehr interessanten Vortrag geht es um Möglichkeiten Full-Duplex Kommunikation zwischen Browser und Server zu ermöglichen. Damit könnten viele Dinge, wie z.B. Webchats, wesentlich einfacher realisiert werden denn der Browser müsste nicht durch ständiges „Pingen“ den Webserver nach Änderungen fragen. Darüber hinaus wurden Möglichkeiten vorgestellt den Browser auch über Protokolle abseits von HTTP kommunizieren zu lassen. Das Ganze wurde am Beispiel eines Web-Clients für Google-Talk veranschaulicht. Dass all diese Dinge nicht nur reine Zukunftsmusik sind, und viele weitere Informationen findet man auf der Internetseite der Firma Kaazing: http://kaazing.org

Etwas genauer über diesen Vortrag berichtet Davadda.

In den nächsten beiden Vorträgen habe ich mich dann ein wenig über IDEs für die PHP-Entwicklung informiert. Zunächst wurde in „Eclipse PDT – PHP Development with Eclipse“ Eclipse PDT vorgestellt. Von den Grundlagen der Installation über das Anlegen von neuen Projekten, Code Completion und vielen anderen Kleinigkeiten wurde bis zum Einbinden von Xdebug alles erklärt und Live gezeigt. Besonders das Nutzen von Xdebug innerhalb von Eclipse fand ich persönlich sehr interessant und werde es wahrscheinlich demnächst testen.

Im zweiten IDE Vortrag „PHP Development with Netbeans IDE“ wurde die aktuelle Version 6.5 der Entwicklungsumgebung vorgestellt welche nun auch PHP unterstützt. Der erste Eindruck war durchaus positiv und die Entwickler scheinen sich wirklich Gedanken über die typische Entwicklung von PHP Projekten gemacht zu haben. So konnten Features entstehen wie zum Beispiel das problemlose parsen von HTML, CSS, Javascript und PHP Quelltext in einer Datei. Weiterhin gibt es Generatoren für häufig genutzte Methoden wie z.B. Getter und Setter. Ebenfalls positiv finde ich die standardmäßige Integration des Debuggers Xdebug. Weiterhin sind ein SVN und ein MySQL Client bereits in NetBeans integriert, sodass es sich auf jeden Fall lohnt NetBeans einmal zu testen.

Es folgte ein Vortrag über die Optimierung der Frontend-Performance von Webprojekten. Dieser Vortrag war jedoch offensichtlich an Anfänger gerichtet, sodass ich leider nicht viel neues erfahren konnte. Es wurden hauptsächlich die verschiedenen Bewertungskriterien der Firebug Erweiterung Yslow analysiert und Tipps zur Optimierung gegeben. So wurde immerhin bereits vorhandenes Wissen wieder in Erinnerung gerufen, was ja auch nicht schaden kann.

Persönliches Highlight des Tages war der Vortrag „Lesser known security problems in php applications“ von Stefan Esser. Hier wurde über Sicherheitsrisiken in PHP-Anwendungen berichtet, die weniger bekannt sind und dementsprechend oft nicht beachtet werden. Hierzu zählten z.B. Session-Data-Mixup. Auch vor der Verwendung eigener Seeds für die Generierung von Random Values wurde gewarnt. Aus früheren Krypto-Vorlesungen an der Uni kannte ich einige Dinge bereits, andere waren jedoch neu und interessant. Hier ein paar Kernaussagen zum genaueren nachlesen:

  • disable auto_globals_git
  • never use $_REQUEST
  • Use secure option in Cookies within SSL sessions
  • use sql-mode strict_all_tables
  • Do not seed random number generatos
  • do not use RNG for cryptographic secrets (or at least combine different)
  • do not unserialize user-inputs (or validate with a hash)

Evtl. werde ich über einige der Themen nochmal genauer berichten, bis dahin lohnt es sicherlich das Blog von Stefan Esser zu lesen. (http://www.suspekt.org/)

Der letzte Vortrag des Tages beschäftigte sich mit Alternativen zu XMLHttpRequest. Es wurden einige „historische“ Techniken erwähnt, die im Zuge des Ajax-Hypes nun teilweise wieder Verwendung finden. Aber auch neue Projekte, die sich teilweise noch in der Entwicklung oder Planung befinden. Für mich und Andere hier wieder ein paar Keywords zum nachschlagen:

  • (hidden) iframes
  • javascript injection
  • Cookies durch dynamische Bilderzeugung
  • Xforms
  • JSONRequest
  • Flash/Flex (Flash/Ajax Bridge / Aflax)
  • Comet
  • Fajax