Archive for the Category »PHP «

Erstes Update für Firefox Klar

Seit einem Monat ist die Android-Version des Privatsphäre-Browsers Firefox Focus unter dem Namen Firefox Klar veröffentlicht.

Firefox Klar kann man kostenlos bei Google Play (Android) und bei iTunes (iOS) herunterladen. Für die nächsten Monate hat Mozilla weitere „tolle Updates“ angekündigt.

Nachdem im letzten Monat schon eine Million Nutzer den Browser heruntergeladen haben, gibt Mozilla jetzt ein Update mit drei von den Usern gewünschten neuen Funktionen heraus.

Nicht für alle, aber für „die meisten Video-Seiten“ bietet Firefox Klar einen Vollbild-Videomodus – dummerweise funktioniert das aber ausgerechnet beim weltweit meistgenutzten Video-Portal YouTube noch nicht.

Ein Fehler bei Google stört die Funktion. Sie soll aber nachgebessert werden, sobald Google die nötige Korrektur realisiert hat, verspricht der Hersteller.

Außerdem kann der Browser mit dem Update „alle Arten von Dateien herunterladen“. Die dritte Neuerung sind die jetzt mit einem Shortcut zu Firefox Klar ausgestatteten Benachrichtigungen. Diese kleinen Hinweise erinnern den Benutzer daran, seinen Suchverlauf zu löschen.

Sicherheitsupdate 3.7.3 für CMS Joomla

Mehrere schwere Sicherheitsprobleme mit der Einstufung „hoch“ werden mit dem aktuellen Security- und Bug-Fix-Release 3.7.3 von Joomla behoben. Dabei wurden auch mehrere andere Bugs in dem CMS beseitigt.

Zei der schweren Sicherheitslücken bestehen in den Versionen von 1.7.3 bis einschließlich 3.7.2. Durch die Lücke CVE-2017-9933 können Daten aus dem Cache leaken, die Lücke CVE-2017-9934 lässt sich wegen mangelnder Überprüfung von Dateneingaben für Angriffe per Cross Site Scripting (XSS) nutzen.

Die dritte schwere Lücke, ebenfalls eine Verwundbarkeit für mit Cross Site Scripting, ist sogar schon ab Version 1.5.0 bis Version 3.7.2 zu finden.

Daher sollten Nutzer der gefährdeten Joomla-Versionen möglichst umgehend die abgesicherte Version Joomla 3.7.3 installieren.

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.

JavaScript ist weiter Nummer Eins bei RedMonk

Weiterhin stehen JavaScript und Java an der Spitze des Programmiersprachen-Rankings der Analysten von RedMonk. Dabei greifen die „Roten Mönche“ zur Bewertung von Verbreitung und Nutzung der Programmiersprache auf Daten der großen Entwickler-Communities StackOverflow und GitHub zurück.

Während die Auswertung der Daten von StackOverflow für die aktuellste Analyse auf unveränderte Art und Weise durchgeführt werden konnte, zwang GitHub dem Report eine deutliche Änderung auf. Bisher wurde dazu die Anzahl der in einer bestimmten Sprache gehaltener Repositories ausgewerten, und bei der Analyse des zweiten Quartals 2017 erfolgte die Analyse jetzt stattdessen anhand der Pull-Requests. Allerdings  korrelieren die Daten laut RedMonk recht gut, so daß eine gewisse Vergleichbarkeit erhalten bleibt.

Hier die Top Twenty der aktuellsten Ausgabe des RedMonk-Rankings:

Joomla-Update schließt SQL-Injection-Lücke

Die Version 3.7.0 des Content-Management-Systems (CMS) Joomla weist eine SQL-Injection-Lücke auf, durch welche Hacker eigene Datenbankbefehle in das CMS einschleusen können. Solche Schwachstellen können üble Folgen haben: Ein Angreifer könnte beispielsweise den Inhalt der Seite manipulieren und auf diese Weise Schadcode einschleusen oder aber auf die Nutzerdaten zugreifen.

Die Sicherheitslücke steckt im Joomla Core und hat die CVE-Nummer CVE-2017-8917. Vom Joomla-Team wird das Sicherheitsproblem mit dem zweithöchsten Schweregrad „Hoch“ bewertet. Joomla gibt aber bisher keine Details bekannt – vermutlich, um Benutzer der verwundbaren Version zu schützen.

Die abgesicherte Version 3.7.1, die sich auf der Projektseite herunterladen lässt, beseitigt das Problem. Wer eine betroffene Joomla-Installation betreibt, sollte deshalb so schnell wie möglich auf diese aktuelle Version umsteigen.

Denn nun, wo der Patch einmal herausgegeben ist, können potentielle Angreifer durch Vergleich von Version 3.7.0 und Version 3.7.1 leicht herausfinden, an welcher Stelle es zu der mangelnden Prüfung eingehender Daten kommt und dann diese Lücke auch für ihre Zwecke missbrauchen.

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.