Tag-Archive for » PHP «

Vorbereiten auf PHP 7

Im August dieses Jahres endet der aktive Support für PHP 5. Danach gibt es noch ein Jahr länger Patches gegen Sicherheitslücken geben, aber so langsam müssen sich Entwickler und Anwender darauf einstellen, ihre PHP-Programme rechtzeitig auf die neue Version PHP 7 zu migrieren.

Durch diese klaren Festlegungen zur Support-Dauer wollen die Entwickler einen Fehler wie beim Erscheinen von PHP 5 vermeiden. Damals hatten sie nämlich kein eindeutiges Ende für die Vorversion PHP 4 vorgegeben, die deshalb noch recht lange gewartet werden musste.

Das PHP-Projekt hat PHP 7 genutzt, um viele zuvor als „deprecated“ abgekündigte Altlasten aus PHP herauszunehmen und die teilweise inkonsistente und undokumentierte Semantik aufzuräumen. Unter anderem zur sauberen Implementierung eines abstrakten Syntaxbaums überarbeiteten die Entwickler die Syntax von PHP 7 bezüglich der Verwendung von Variablen.

PHP-Programmierer müssen aber nicht nur auf Altes verzichten – sie bekommen mit PHP 7 auch viele neue Features, die die Arbeit mit der Skriptsprache sicherer und komfortabler machen.

Kein Support mehr für PHP 5

Am heutigen 1. Januar 2017 hat PHP 5.6 als letzte 5er-Version der beliebten Script-Sprache das Ende seiner aktiven Supportphase erreicht: Die aktuelle Version PHP 5.6.30 wird das letzte reguläre PHP-5-Release sein, das herausgekommen ist. Danach gibt es nur noch das neueste Haupt-Release PHP 7 bzw. PHP 7.1.

An PHP 5 wird auch ab sofort nicht mehr weiter entwickelt. Allerdings versprechen die Entwickler, kritische Sicherheitslücken in PHP 5.6 noch bis Ende 2019 zu stopfen – aber spätestens zu diesem Zeitpunkt sollte man auf eine 7er-Version der Scriptsprache aufgestiegen sein.

Die Web-Statistiker von W3tech fanden PHP 7 bisher nur auf 2,5% der untersuchten Internetseiten, die PHP nutzen. PHP 5.6 wird auf 21% der PHP-Sites eingesetzt, der Rest verteilt sich auf ältere, nicht mehr gepflegte PHP-Versionen. Nach Angaben von W3tech nutzen über 80% der 10 Millionen populärsten Websites PHP.

Etwas freundlicher kommt die Statistik von packagist.org, dem Standard-Repository des PHP-Package-Managers Composeherüber: Hier kamen PHP 7.0 und 7.1 im November 2016 zusammen zumindest auf gut 36% der Zugriffe und PHP 5.6 auf 37%. Aber leider erfolgen auch bei packagist.org ein Viertel aller Zugriffe mit veralteten und nicht mehr supporteten PHP-Versionen.

Neuer Tiobe-Index der Programmiersprachen

tiobe201611Es ist wieder soweit: Wie in jedem Monat hat TIOBE seinen Programmiersprachenindex auf der Basis von Ergebnissen verschiedener Suchmaschinen soeben veröffentlicht. In dieser aktuellen Rangliste können die schonim Juli in die Top 10 eingezogenen Assemblersprachen ihre Position weiter festigen.

Offensichtlich gibt es auch weiterhin einen deutlichen Bedarf an hardwarenaher Programmierung – zum Beispiel im Internet der Dinge (IoT – Internet of Things). In der Spitzengruppe fällt ganz besonders die gestärkte Position von Microsofts Visual Basic .NET zu Lasten von JavaScript und PHP auf.

PHP: Domain aus einer URL auslesen

phpmarginZu den häufigeren Aufgaben eines Programmierers gehört es, die Domain aus einer URL auszulesen.

Zum Beispiel sollte aus der URL „http://www.homepage-anleitung.de/2016/08/javascript-alternative-dart-bringt-version-1-19/“ die Domain „www.homepage-anleitung.de“ isoliert werden.

Diese Aufgabe kann man als eigene kleine Funktion auf Basis von ParseUrl() realisieren:

function getHost($url) {
$parseUrl = parse_url(trim($url)); return trim($parseUrl[host] ? $parseUrl[host] : array_shift(explode(‚/‘, $parseUrl[path], 2))); }

Hier einige Aufrufe der Funktion getHost() und die Ergebnisse dazu:

getHost(„homepage-anleitung.de“); -> homepage-anleitung.de
getHost(„http://homepage-anleitung.de“); -> homepage-anleitung.de
getHost(„www.homepage-anleitung.de“); -> www.homepage-anleitung.de
getHost(„sub.homepage-anleitung.de“); -> sub.homepage-anleitung.de
getHost(„http://homepage-anleitung.de/datei.php“); -> homepage-anleitung.de

Category: Allgemein, PHP  Tags: , , , , , , , ,  Comments off

Veraltete WordPress-Plugins locken Hacker an

WordpressHacksDie Sicherheitsfirma Sucuri hat im ersten Quartal dieses Jahres mehr als 11.000 kompromittierte Internetseiten untersucht. Aus ihrem Bericht geht hervor, dass häufig  erweiterbare Komponenten von CMS den Angreifern als Einfallstor dienen.

Mehr als 1 Milliarde Internetseiten auf CMS-Basis

Zurzeit sind über eine Milliarde Internetseiten aufrufbar, und hinter mehr als einem Drittel von ihnen stehen die Content-Management-Systeme (CMS) WordPress, Joomla, Drupal und Magento.

Von diesen CMS hat WordPress einen Marktanteil von über 60 Prozent, was auch auf seine durch Themes und Plugins vielfach erweiterbare Plattform zurückzuführen ist.

Bei WordPress fanden die Sucuri-Sicherheitsforscher auf jeder vierten der gehackten Seiten veraltete und anfällige Versionen der Plugins RevSlider, GravityForms und TimThumb.

Die untersuchten Hackerangriffe hatten jedoch kaum etwas mit der Kernanwendung des CMS zu tun, sondern mehr mit unsachgemäßer Installation, Konfiguration und Wartung durch Administratoren oder Hoster.

Die Infektionsursachen

Die häufigste Ursache von Infektionen waren Schwachstellen in den Erweiterungs-Komponenten i.e. Plugins, Erweiterungen, Module, Templates, Themes und ähnlichen Komponenten

Obwohl schon lange automatische Updates möglich sind, waren 56 Prozent aller infizierten WordPress-Sites nicht auf dem aktuellen Stand. Das ist im Vergleich zu den anderen Plattformen noch ein guter Wert, denn Joomla war zu 84 Prozent veraltet, Drupal zu 81 Prozent und Magento sogar zu 96 Prozent!

Ursachen für die mangelhaften Updatestände sind stark angepasste Installationen, Probleme mit der Rückwärtskompatibilität und last not least fehlende Mitarbeiter mit der notwendigen Kompetenz…

Auf 66 Prozent aller kompromittierten Installationen fand Sucuri eine PHP-basierte Backdoor. Durch diese Hintertüren konnten sich Angreifer über einen längeren Zeitraum nach der Infektion den Zugang sichern.

Diese Backdoors können auch die hohe Quote erneuter Infektionen, die nach Googles Webmaster-Tool bei satten 30 Prozent liegt, verständlich machen.

Zend Server beherrscht jetzt PHP 7

Nach der Übernahme von Zend im Oktober 2015 hat Rogue Wave jetzt das erste große Zend Server Release bekannt gegeben.

Die Version 9 des Applikationsservers kann mit dem im Dezember 2015 veröffentlichten PHP 7 umgehen, was die Anwendungen merklich schneller machen soll.

Weitere Neuerungen sind Möglichkeiten zum Code Tracing und Black Box Recording, die bei der Entwicklung und im Betrieb helfen können, Fehlerquellen schneller zu finden.

Mit diesem Update stellt Rogue Wave außerdem Zend Server Professional Plus und Zend Server Enterprise Edition vor. Abonnenten dieser beiden Dienste können sich nicht nur bei Fragen zu Zend Server selbst an den Support des Unternehmens wenden, sondern sie haben auch Zugriff auf Experten zu weiteren Themen wie beispielsweise CentOS, Apache, MySQL und PHP.

Damit will Rogue Wave Hilfe beim Umgang mit dem Open-Source-Stack unter auf Zend Server gehosteten PHP-Anwendungen bieten.

Sicherheitsupdates für aktive PHP-Versionen

Die PHP-Versionen 5.5, 5.6 und 7.0 sind über zwei Sicherheitslücken verwundbar. Angreifer können diese Installationen aus der Ferne attackieren, Speicherfehler auslösen und dann eigenen Code auf diese Systeme übertragen und ausführen.

Diese zwei Schwachstellen wurden in den jetzt zum Download bereitstehenden Versionen PHP 5.5.35, 5.6.21 und 7.0.6 geschlossen. Die dazugehörigen Windows-Binaries finden Sie auf dieser Webseite.

Sicherheitslücken und Exploits

Die Sicherheitslücke CVE-2016-3078 betrifft alle PHP-Versionen vor 7.0.6. Nutzen die Angreifer diese Schwachstelle aus, dann können sie über ein dafür präpariertes Zip-Archiv einen Speicherfehler hervorrufen und dann eigenen Code auf dem Rechner ausführen.

Die zweite Schwachstelle mit der Kennung CVE-2016-3074 steckt in der Bild-Bibliothek libgd 2.1.1, die seit PHP 4.3 bei der Default-Installation standardmäßig auf den Rechner kommt. Um über diese Schwachstelle einen Speicherfehler auszulösen, müssen die Angreifer dem Opfer komprimierte gd2-Daten unterjubeln. Danach können sie das System entweder crashen oder darauf sogar Schadcode ausführen.

Das Ende von PHP 5.5

AchtungBei dieser Gelegenheit möchte ich darauf hinweisen, daß der Support der Entwickler für die PHP-Version 5.5 schon am 10. Juli 2015 endete.

Sicherheitsupdates gibt es für PHP 5.5 jetzt noch bis zum 10. Juli 2016 – in 2 Monaten sollte man also im eigenen Interesse auf die neueren Zweige 5.6 (Sicherheitsupdates bis 28. August 2017) oder noch besser auf PHP 7.0 (aktuellste Version) upgraden.

Gleich zwei neue Releases von Symfony

Das  PHP-Framework Symfony, dessen Entwicklung vor ca. zehn Jahren im Rahmen der Begeisterung für Ruby on Rails startete, ist jetzt in gleich zwei neuen Releases veröffentlicht worden.

Funktionell sind die beiden Versionen 2.8 und 3.0 komplett gleich. Das Release 3.0 wirft aber zusätzlich auch Altlasten über Bord und wird so einfach schneller.

Wie Ruby baut auch Symfony auf die Model View Controller (MVC)-Architektur. Symfony wurde in PHP 5 geschrieben und wird zurzeit unter der Leitung von Fabien Potencier entwickelt und gepflegt, der jetzt im Blog die Veröffentlichung von Symfony 2.8 und 3.0 ankündigte.

Neue Funktionen in Symfony

Zu den neuen Funktionen der beiden Versionen 2.8 und 3.0 gehören eine neue LDAP-Komponente, die Änderung der Prioritäten von Event-Listenern und auch einige Security-Erweiterungen.

Auch beim Debugging und Profiling hat sich einiges geändert. Die komplette Liste der Änderungen gegenüber Symfony 2.7 finden Sie in dem Blog-Beitrag, mit dem Potencier die Beta-Version von Symfony 2.8 ankündigte. Viele der Neuerungen in Symfony betreffen den Umgang mit Web-Formularen, zu denen es einen zusätzlichen Eintrag gibt.

Die Rückwärtskompatibilität

Das Programmier-Team hat jetzt auch einige der alten Funktionen für überholt erklärt (deprecated). In der Version 3.x wurden viele dieser veralteten Funktionen ausrangiert und dann die Minimalanforderung für PHP dementsprechend auf die Version 5.5.9 angehoben. 

So erreicht man zwar eine bessere Leistung, allerdings müssen die Entwickler ihren Programmcode eventuell noch entsprechend anpassen. Die Version Symfony 2.8 bietet die neuen Funktionen aus 3.0 bei besserer Rückwärtskompatibilität.

Symfony steht unter einer MIT-Lizenz und wird auf GitHub auch im Quellcode zum Download angeboten.

MS-Connect(); zeigt Visual Studio und C# 7.0

Sowohl die nächste Version von Visual Studio „Visual Studio vNext“ als auch das neue C# 7.0 wurden auf Microsofts Entwickler-Konferenz nur relativ kurz vorgestellt – der Zeitplan der Konferenz mit ihren vielen Neuerungen war wohl zu eng.

Visual Studio kann jetzt auch PHP und R

Bei Visual Studio vNext reichte es aber noch für den Hinweis, dass Microsoft im nächsten Visual Studio auch die Webserversprache PHP und die Sprache R für statistisches Rechnen und statistische Grafiken unterstützt.

Im neuen Projektmappen-Explorer können die Entwickler mit „Open Code Folder“ jetzt direkt zum entsprechenden Verzeichnis im Dateisystem wechseln.

Kaum Details zu C# 7.0

In seiner nächsten Version wird C# (gesprochen C Sharp) auch Pattern Matching unterstützen. So können Entwickler beispielsweise durch eine Überladung für den is-Operator nun statt dem Code links auch den kürzeren rechts benutzen:

var v=expr as Type;
if (v != null) {
//Code mit v
}
if (expr is Type v) {
//Code mit v
}

Zusätzlich plant Microsoft auch die Unterstützung für Tupel und eine bessere Kontrolle der Entwickler über Speicherallokationen.

Weitere Pläne für C# 7.0 und auch den aktuellen Stand der Implementierung können Sie auf GitHub mitverfolgen. C# 7.0 soll genau wie die aktuelle Programmversion C# 6.0 auf allen .NET-Versionen ab .NET 2.0 laufen.

Netbeans 8.1 legt Schwerpunkt auf Javascript

netbeansGut ein Jahr nach dem Erscheinen von NetBeans 8.0 ist nun mit der Version 8.1 ein neues Release von Oracles Open-Source-Entwicklungsumgebung fertig. Während der Schwerpunkt damals auf der Unterstützung des zu dieser Zeit neuen Java 8 lag, gibt es bei Version 8.1 insbesondere für JavaScript-Entwickler viel Neues.

NetBeans ist vom Ursprung her zwar eine Java-IDE, doch schon bald wurden von der Entwicklungsumgebung auch andere Programmiersprachen wie C/C++, PHP und auch Ruby und eben mittlerweile auch JavaScript unterstützt.

Netbeans 8.1 unterstützt jetzt unter anderem die Arbeit mit Node.js durch einen Projekt-Wizard, Konfigurationsoptionen, Problemerkennungsmechanismen, Synchronisation zwischen dem Projekt und dessen package.json-Date sowie einen Editor und einen Debugger.

Außerdem haben die Entwickler die Codeergänzung für JavaScript und den JSDoc-Support erweitert und im Debugger die Möglichkeit geschaffen, Breakpoints zu setzen, die nur unter festgelegten Bedingungen zum Einsatz kommen.

Für Webentwickler wichtige Optionen sind in der Übersicht jetzt in einem eigenen HTML/JS-Bereich gruppiert. Dort findet man unter anderem auch alle Einstellungen für Grunt und Gulp, die die IDE in Version 8.1 neben weiteren Tools wie den Testframeworks Mocha, Selenium 2.0 und Arquilian integriert.