Archive for the Category »PHP «

CMS Joomla: Update auf Version 3.7

Über 1300 Änderungen und 700 neue Funktionen bringt das Joomla-Projekt in der gerade veröffentlichten Version 3.7 seines gleichnamigen Content-Management-Systems (CMS) als Open Source Software. Viele dieser Änderungen sind nur marginal, andere wiederum aber auch elementarer.

Deutlich mehr eigene Gestaltungsmöglichkeiten und Flexibilität sollen beispielsweise die eigenen Feldern (Custom Fields) bringen. Dazu stehen jetzt 15 unterschiedliche Feldtypen bereit, die der Administrator bereitstellen und die die Nutzer bei der Erstellung von Inhalten ausfüllen können.

Die „Custom Fields“ gestatten eine einheitliche Gestaltung des Layouts, auch wenn mehrere Redakteure die Inhalte zusammen erstellen. Die Felder lassen sich zu Feldgruppen zusammenfassen, die wiederum verschiedenen Kategorien oder Zugriffsebenen zugewiesen werden können.

Bei der Mehrsprachigkeit gibt es auch Verbesserungen. So können mit der neu eingeführten Komponente „Multilingual Associations“ Inhalte jetzt in einem Interface übersetzt werden. Auch die Anlage von neuen Artikeln wurde verbessert, so dass die Redakteure jetzt einen Menüpunkte, Artikel und Kategorien in einem Schritt erstellen können.

Keine modalen JavaScripts mehr in Chrome

Googles Browser Chromium soll in Zukunft anders mit JavaScript-Dialogen umgehen. Die Entwickler planen, dass solche Dialoge zumindest nicht mehr modal sind, das heißt, dass sie die JavaScript-Anwendung bis zur Reaktion des Nutzers anhalten. Die Methode ist bei Scammern beliebt, um Anwender beispielsweise auf vermeintliche Infektionen hinzuweisen.

Deshalb sollen über alert(), confirm() oder prompt() erstellte Dialoge demnächst nicht mehr App-modal sein, sondern wie auch schon in Safari 9.1 beim Wechseln des Tabs automatisch geschlossen werden. Ein Beitrag auf Googles Developer Site empfiehlt Entwicklern auch, JavaScript-Dialoge durch andere Methoden zu ersetzen: Für Benachrichtigungen wird die Notifications API empfohlen und für Eingaben des Nutzers das HTML-Element <dialog>.

Die sehr nervige Benutzung von onbeforeunload-Strings, die für Dialoge à laWollen Sie diese Seite wirklich verlassen?“ beliebt sind, funktioniert in den aktuellen Versionen von Chrome, Firefox und Safari sowieso nicht mehr.

Mittelfristig möchte das Chromium-Team in den Google-Browser einen Gate-Mechanismus einbringen, der JavaScript-Dialoge auf Internetseiten komplett unterbindet, die insgesamt nur eine geringe Nutzerinteraktion anbieten.

c’t-Sonderheft „Programmieren“ im Handel

Programmierer müssen immer auf dem Laufenden sein, was aktuelle Entwicklungen in der Programmierung von Anwendungen (Programme bzw. Apps) angeht. Eine gute Quelle für Informationen zu aktuellen Trends, neuen Techniken mit Tutorials und Programmier-Projekten ist das gerade erschienene Sonderheft „Programmieren“ der führenden Computerzeitschrift c’t aus dem Hause Heise.

Zu einem der Schwerpunkte des Sonderhefts zählen mobile Apps für Android und iOS, denn viele Android-Entwickler suchen nach Alternativen zu Java wie beispielsweise JetBrains „Kotlin“. Kotlin bringt uns das Heft in einem dreiteiligen Tutorial (Einführung, Testmöglichkeiten und Architektur) näher.

Für Apple-Programmierer gibt es einen Zweiteiler zum Thema Sicherheit, der ihnen zeigt, wie sie sich gegen Angriffe auf ihre Apps wehren können.

In anderen Beiträgen werden komplexe Anwendungen mithilfe von Facebooks JavaScript-Framework React zerlegt und praktische Anwendungsbeispiele für einfache und komplexere Aufgaben unter Python behandelt.

Auch der Frage, wie progressive Web-Apps die Grenzen zwischen responsivem Webdesign und hybriden Apps verwischen könnten, wird in dem Sonderheft nachgegangen.

Ab sofort kann das 9,90 Euro teure Heft „c’t Programmieren 2017“ über den heise Shop vorbestellt werden. In Deutschland, Österreich und der Schweiz ist der Versand bis zum 26. März 2017 versandkostenfrei.

Als digitale Version kostet das Heft nur noch 8,99 Euro; bestellen kann man es über die c’t-App für Android oder iOS sowie im PDF-Format als E-Book. In der nächsten Woche (ab dem 20. März) ist das Sonderheft dann auch im Zeitschriftenhandel erhältlich.

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.

Rückgabe in PHP 7.1

php7-1Außer den internen Veränderungen, die die beliebte Programmiersprache deutlich beschleunigt haben, brachte Version 7 von PHP viel Neues im Umgang mit dem Typsystem der Sprache.

Mit dem ersten großen Sprachupdate PHP 7.1 erweiterten die Entwickler PHP um Funktionen, die man so auch aus anderen Sprachen kennt. Dazu gehört unter anderem beispielsweise der explizite Verzicht auf einen echten Rückgabewert.

Nirwana-Rückgabe: Nullen oder Nichts

Denn jetzt gehört zu den sogenannten Typehints auch das Schlüsselwort void. Der Typehint zum Beispiel für den Datentyp int gibt ja auch an, dass der Typ des betreffenden Rückgabewerts ein Integer (Ganzzahl) sein soll. Genauso gibt in PHP 7.1 der Typehint void an, dass die Funktion eben nichts zurückgibt, sondern ausschließlich prozedural arbeitet.

Wie in den Sprachen C und C++ kann aus einer Methode durch die Angabe von return; zurückgekehrt werden. Auch auf diese Angabe kann verzichtet werden. Sinnvoll sei die Verwendung von void vor allem zur Dokumentation und zur Fehlerüberprüfung. Es macht in jedem Fall deutlich, „dass eine Funktion eine Aktion ausführt und kein Ergebnis erzeugt“.

Bis jetzt hatte PHP unter bestimmten Umständen Probleme bei Rückgabewerten, die keinen Standardwert haben, weshalb das Team eine einheitliche Syntax eingeführt hat, um zu zeigen, dass der Wert auch null sein kann. Dies ist ab der Version 7.1 für alle erlaubten Typen möglich, indem den Typen ein Fragezeichen vorangestellt ist, also zum Beispiel ?int.

Iterationen und Konstanten

Als neuer Pseudotyp ist das Keyword iterable neu hinzugekommen. Bisher konnte man keinen Typ für iterierbare Rückgaben festlegen und musste tricksen, wenn man eine Funktion innerhalb einer Foreach-Schleife nutzen wollte.

Auch aus dem Umfeld von C und C++ kommt die neue Zugriffsmodifikation, die neben Funktionen jetzt auch für Klassenkonstanten genutzt werden kann. Das Team löse damit eine bisher bestehende Inkonsistenz recht einfach auf. Als Schlüsselworte dazu kann man publicprotected und private nutzen. Konstanten, die ohne eines dieser Schlüsselworte deklariert werden, sind wie schon bisher immer public.

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.

Netbeans 8.2 unterstützt ECMAScript 6/7 und PHP 7

netbeansGute Nachricht für Entwickler: Gerade ist die Open-Source-Entwicklungsumgebung (IDE) NetBeans in Version 8.2 freigegeben worden. In der neuen Version unterstützt NetBeans 8.2 jetzt mit ECMAScript 6 und PHP 7 die zurzeit aktuellen Ausgaben dieser beiden Skriptsprachen.

Mit dem erst noch kommenden ECMAScript 7 können Entwickler zumindest schon einmal auf experimenteller Basis arbeiten. Darüber hinaus wird von einer besseren Unterstützung des serverseitigen JavaScript-Frameworks Node.js und von Oracle JET (JavaScript Extension Toolkit) geredet.

Mit der IDE NetBeans 8.2 können Entwickler auch mit Docker-Containern kommunizieren. Zugriff und die Verwaltung von Container-Images sind direkt aus der IDE heraus möglich. Außerdem ist ein Profiling-Modus für SQL-Abfrage in die IDE gekommen. Auch bei der Unterstützung von C/C++ gibt es neue Erweiterungen.

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.

TIOBE mit neuer Hitliste der Programmiersprachen

Tiobe201601Ein schneller Blick auf den aktuellen Programmiersprachen-Index vom Januar 2016 der Firma TIOBE zeigt, daß Java auch weiterhin die meistgenutzte Programmiersprache ist.

Das liegt hauptsächlich daran, dass das erfolgreiche Mobilbetriebssystem Android von Google ebenfalls weitestgehend auf Java basiert und daß die Programmiersprache Java grundsätzlich plattformunabhängig ist.

Die Rangliste soll aktiven Programmierern einen Überblick  über die Popularität unterschiedlicher Programmiersprachen bei ihren Kollegen geben und entsteht durch simples Zählen der Treffer für die Anfrage „<language> programming“ in 25 verschiedenen Suchmaschinen.