Letzte Beiträge

Citrix: Müller neuer Geschäftsführer

Citrix Systems startet das Geschäftsjahr mit dem neuen Area Vice President Dr. Jürgen Müller für Deu...

Mehr

ec4u vertreibt Oracle Fusion CRM

Das deutsche Systemhaus ec4u bietet als eines der ersten Unternehmen in Europa Oracle Fusion CRM. me...

Mehr

ALSO Actebis vertreibt Mobilfunkzubehör

ALSO Actebis erweitert sein Produktportfolio um Original-Zubehör für Mobiltelefone und Tablets. mehr...

Mehr

Office 15 in den Startlöchern

Das Technical Preview von Office 15 hat begonnen. Die öffentliche Beta soll im Sommer folgen. mehr.....

Mehr

Letzte Beiträge

McAfee AVERT Stinger 10.2.0 Build 498

Bei McAfee AVERT Stinger handelt es sich nicht um einen vollwertigen Virenscanner, sondern um ein kl...

Mehr

NoScript 2.2.8

Die NoScript Firefox Extension bietet extra Sicherheit für Firefox, Flock und Seamonkey, sowie ander...

Mehr

Internet Download Manager (IDM) 6.08

Der Internet Download Manager, jetzt in einer neuen Version erschienen, ist ein Werkzeug zur Beschle...

Mehr

AVG Anti-Virus Professional Edition 2012 build 1913

AVG Anti-Virus Professional Edition ist eine kostenlose Antivirensoftware, die von Grisoft für den a...

Mehr

Letzte Beiträge

UCI iSense: Erster Kinosaal mit 4K-Projektor und 23.1 Surround Sound

Nach einer dreiwöchigen Umbauphase eröffnet in der Düsseldorfer UCI Kinowelt der erste iSense-Kinosa...

Mehr

Hin und Her im Patentstreit zwischen Apple und Motorola

Am gestrigen Freitag musste Apple den Online-Verkauf einiger iPhones und iPads aufgrund eines Urteil...

Mehr

iPad 3: So wird das neue Apple-Tablet

Es ist wieder einmal soweit: Wenn alles glatt, geht, wird Apple in wenigen Wochen das neue iPad vors...

Mehr

Nachtleuchtender Alien-USB Stick

Aliens gibt es doch. Zumindest in klein und grün. Und die sind mit mindestens 4 GB Speicherplatz sog...

Mehr

[x] Schliessen

DOSSIERS

PHP 6: Alt und neu
PHP 6 – ein Ausblick

PHP 5 hat sich gerade in der Entwicklergemeinde etabliert, da wird auch schon über den Nachfolger gesprochen und spekuliert. Internet Professionell trägt die Fakten aus der PHP-Community zusammen.

von Christian Wenz , Max Bold , Tobias Hauser 0

Diskussion um PHP 6

PHP 6: Alt und neu

Mit PHP 5 ist den Entwicklern vor allem in Sachen Objektorientierung ein Quantensprung gelungen. Die Frage ist also, was in einer Version 6 passieren soll. Anfangs gab es dazu nur ein paar Gerüchte und viele widerstreitende Meinungen. Rasmus Lerdorf, der PHP-Erfinder, begann die Diskussionen um die neue Version im August 2005 mit einer Mail in der internen Mailingliste für PHP-Entwickler. Dabei ging es vor allem darum, einige alte Zöpfe abzuschneiden und wichtige Neuerungen in Gang zu bringen. Die schon lange geplante Unicode-Integration stand zu diesem Zeitpunkt auch schon als Aufgabe fest.

Die auf diese Mail folgende Diskussion gipfelte dann in einem Treffen der Kernentwickler in Paris im November 2005. Die hierzu von Derick Rethans verfasste Zusammenfassung ist nach wie vor in den meisten Punkten aktuell, denn dort wurden in vielen Punkten bereits Entscheidungen getroffen. Andere Fragen wie beispielsweise Namespaces für die Objektorientierung werden dagegen immer noch auf der internen Mailingliste diskutiert.

Alte Zöpfe

Die wichtigsten Vorschläge von Rasmus Lerdorf gingen dahin, einige der alten Zöpfe abzuschneiden, die PHP schon seit mehreren Versionen mit sich herumschleppt, ohne dass sich positive Effekte daraus ergeben haben. Allerdings wurden viele davon bisher noch nicht abgeschaltet, da sonst die Abwärtskompatibilität verloren geht. Für PHP 6 wurde nun auch von den übrigen Entwicklern mit entschieden, auf welche Funktionen und Konfigurationseinstellungen verzichtet werden kann.

Eine problematische Einstellung ist die php.ini-Einstellung register_globals. Sie erlaubt – wenn auf on geschaltet, unter anderem noch den Zugriff auf POST- und GET-Werte sowie Cookies per Variablenname. Heißt das Formularfeld also eingabe, steht der Wert als $eingabe zur Verfügung. Das ist aber in bestimmten Szenarien gleichzeitig ein Sicherheitsproblem. Deswegen wurden in PHP 4 zuerst die globalen Variablen $HTTP_*_VARS eingeführt, wobei das Sternchen den Ursprung des Werts angibt und dementsprechend für GET, POST et cetera steht. Diese Variablen werden in PHP 6 allerdings auch entfernt, und damit verschwindet auch die zugehörige Konfigurationseinstellung register_long_arrays aus der php.ini. Das heißt, in PHP 6 ist nur noch die superglobale Alternative $_GET beziehungsweise $_POST möglich.

Ein weiterer alter Zopf ist der safe_mode und alle zugehörigen Einstellungen. Ursprünglich wurde er eingeführt, um in Shared-Hosting-Umgebungen für Sicherheit zu Sorgen. Er überprüft, ob der Eigentümer eines Skripts auch der Eigentümer einer zu bearbeitenden Datei ist. Das ist beispielsweise ein Problem, wenn eine Datei per FTP hochgeladen wurde und der Nutzer der Datei damit der FTP-Nutzer ist, während das Skript als Webnutzer läuft. Auf den safe_mode soll dementsprechend vor allem zu Gunsten von open_basedir verzichtet werden. Mit dieser Einstellung kann der Serveradministrator den Skriptzugriff auf ein Basisverzeichnis beschränken.

Die dritte bekannte Konfigurationseinstellung ist die magic_quotes-Familie. Sie wurde eingeführt, um Nutzereingaben zu filtern. Hier wird beispielsweise einem einfachen oder doppelten Anführungszeichen, das der Nutzer per GET, POST oder Cookie übermittelt (Einstellung magic_quotes_gpc) ein Backslash vorangestellt. Das Ziel ist, sicherheitskritische Angriffe wie SQL-Injection zu vermeiden. Leider erfüllen die Konfigurationseinstellungen ihren Zweck nicht wirklich: Zum einen sind sie umgehbar, zum anderen werden die Filterungen vor dem Ausführen des Skripts angewendet und der Entwickler hat darüber keine Kontrolle. In PHP 6 sollen diese Pauschalkonfigurationen deswegen verschwinden und durch die optional einsetzbaren Eingabefilter ersetzt werden. Diese basieren auf der schon für aktuelle PHP-Versionen verfügbaren filter-PECL-Erweiterung (pecl.php.net/package/filter), die bereits seit Version 5.2 bei PHP mit dabei ist.

Bei allen drei Konfigurationseinstellungen soll in PHP 6 beim Start von PHP ein E_CORE_ERROR entstehen. Die Funktionalität selbst verschwindet komplett. Während also von PHP 4 zu PHP 5 die Migration bei der Objektorientierung etwas weh tat und tut, wird in PHP 6 die Übernahme der Uralt-Skripts schmerzhaft. Um allerdings ehrlich zu sein, diese alten Zöpfe müssten eigentlich jetzt schon abgeschnitten werden. Und auch die Entscheidung, die Zend-Engine-1-Kompatibilität zu entfernen, ist sehr verständlich. Sie diente eigentlich nur der Abwärtskompatibilität beim Kopieren von Objekten und wurde kaum praktisch eingesetzt.

Letzter Kommentar




0 Antworten zu PHP 6: Alt und neu
PHP 6 – ein Ausblick

    Hinterlasse eine Antwort

    • Erforderliche Felder sind markiert *,
      Deine E-Mail-Adresse wird nicht veröffentlicht.

    Du kannst folgende HTML-Tags benutzen: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>