Abschaltung der unverschlüsselten Nutzung unserer Mailserver zum 05. März 2025

Ab dem 05. März 2025 werden wir keine unverschlüsselten Verbindungen und keine Verbindungen mit den veralteten TLS-Versionen (1.0 und 1.1) zu unseren SMTP-, IMAP- und POP3-Servern mehr zulassen. Diese Maßnahme dient dazu, die Sicherheit Ihrer Daten und unserer Systeme zu erhöhen.

Warum diese Änderungen?

Unverschlüsselte Verbindungen stellen ein erhebliches Sicherheitsrisiko dar: Zugangsdaten und E-Mail-Inhalte können einfach abgefangen werden.

Die TLS-Versionen 1.0 und 1.1 gelten seit 2021 als veraltet und werden von aktuellen Betriebssystemen und E-Mail-Programmen ohnehin nicht mehr unterstützt.

Was bedeutet das für Sie?

Die meisten unserer Kundinnen und Kunden müssen nichts tun. E-Mail-Konten, die in den letzten Jahren auf einem PC oder Smartphone eingerichtet wurden, sollten automatisch mit den richtigen Einstellungen für verschlüsselte Verbindungen angelegt worden sein.

Dennoch sollten Sie dies in den Konto-Einstellungen Ihres E-Mail-Programms prüfen. Für die Verbindung zu unseren Servern muss SSL/TLS oder STARTTLS aktiviert sein. Die Standard-Ports lauten:

SMTP
smtp.variomedia.de
IMAP
imap.variomedia.de
POP3
pop3.variomedia.de
STARTTLS587, 25143110
SSL/TLS465993995

Die Nutzung von TLS 1.2 (seit 2008) und neuer wird von den meisten Systemen seit vielen Jahren unterstützt:

  • Microsoft Outlook: ab Version 2016
  • Mozilla Thunderbird: ab Version 52
  • Windows: ab Version 8
  • macOS: ab Version 10.11.6
  • iOS: ab Version 9
  • Android: ab Version 5

Problematisch könnten sehr alte E-Mail-Programme, Betriebssysteme oder IoT-Geräte (z.B. Router, Multifunktionsdrucker, Netzwerkkameras) aus der Zeit vor dem Jahr 2016 sein, die E-Mails über unsere Server verschicken oder abrufen.

Erlaubt eines Ihrer Geräte oder E-Mail-Programme keine verschlüsselten Verbindungen zu Mailservern, sollten Sie prüfen oder beim Hersteller nachfragen, ob es ein entsprechendes Update gibt.

Übergangszeit

Für eine beschränkte Übergangszeit bis zum 30.05.2025 stellen wir alternative SMTP- und IMAP/POP3-Server bereit, die noch TLS 1.0 und 1.1 und unverschlüsselte Verbindungen unterstützen:

ProtokollServername
SMTPsmtp-legacy.variomedia.de
IMAPimap-legacy.variomedia.de
POP3pop3-legacy.variomedia.de

Bei Bekanntwerden schwerwiegender Sicherheitsprobleme mit TLS 1.0 oder 1.1 kann jedoch eine frühere Abschaltung dieser TLS-Versionen erforderlich werden.

Hintergrund: Abschaltung veralteter TLS-Versionen

Transport Layer Security (TLS), auch bekannt unter der Vorgängerbezeichnung Secure Sockets Layer (SSL), ist das am häufigsten verwendete Verschlüsselungsprotokoll zur sicheren Datenübertragung im Internet. Es wird beispielsweise zur verschlüsselten Übertragung von Webseiten (HTTPS) oder E-Mails (SMTPS, IMAPS, POP3S) genutzt.

Die ursprüngliche TLS-Version 1.0 wurde im Jahr 1999 vorgestellt, aktuell ist die TLS-Version 1.3 aus dem Jahr 2018. Die TLS-Versionen 1.0 und 1.1 wurden von der Internet Engineering Task Force (IETF) im März 2021 als veraltet eingestuft und sollten nicht mehr verwendet werden.

Die Unterstützung von TLS 1.0 und 1.1 bei verschlüsselten Webseiten (HTTPS) haben wir aufgrund von Sicherheitsproblemen bereits am 15. Februar 2020 eingestellt. Bei den E-Mail-Protokollen SMTP, IMAP und POP3 unterstützen wir jedoch aus Kompatibilitätsgründen bisher noch diese veralteten TLS-Versionen.

E-Mail-Programme verwenden normalerweise automatisch die aktuellste unterstützte TLS-Version, für die Nutzung einer aktuellen TLS-Version ist daher keine Konfigurationsanpassung erforderlich; es genügt ein aktuelles E-Mail-Programm zu verwenden. TLS 1.0 und 1.1 werden von aktuellen Betriebssystemen und E-Mail-Programmen nicht mehr unterstützt, diese verwenden immer TLS 1.2 oder 1.3.

Momentan können die TLS-Versionen 1.0 und 1.1 im E-Mail-Kontext mit bestimmten Schlüsselaustauschprotokollen und Verschlüsselungsalgorithmen noch ohne gravierende Sicherheitsprobleme genutzt werden, da es für diese bisher keine bekannten Schwachstellen gibt, die über die E-Mail-Protokolle ausgenutzt werden können. Einige bekannte E-Mail-Anbieter wie Google Mail unterstützen aus Kompatibilitätsgründen ebenfalls noch diese veralteten TLS-Versionen.

Im Hinblick auf mögliche Sicherheitsprobleme können wir diese veralteten TLS-Versionen jedoch nicht unbegrenzt weiter unterstützen, da es im Falle von neu entdeckten Problemen keine Updates der betroffenen TLS-Softwarebibliotheken mehr geben wird. Außerdem kann die Nutzung von veralteten TLS-Versionen durch Sicherheitsrichtlinien untersagt sein. Auch Cyberversicherungen untersagen ihren Kundinnen und Kunden vermehrt die Nutzung von Mailservern, die noch die veralteten TLS-Versionen unterstützen.

PHP 8.4 ist verfügbar

Heute wurde die neue PHP-Version 8.4 veröffentlicht. Wir haben diese PHP-Version bereits auf allen Webservern installiert, so dass Sie sie ab jetzt für Ihre Web-Anwendungen verwenden können.

Neuerungen und Verbesserungen

Für viele Anwender:innen zählt vor allem eines: schnellere Ladezeiten durch eine verbesserte Ausführungsgeschwindigkeit. In ersten Tests konnten wir jedoch keine signifikanten Performance-Unterschiede zwischen PHP 8.4 und der Vorgängerversion 8.3 feststellen. Dennoch sind in spezifischen Szenarien spürbare Verbesserungen durchaus möglich.

Eine nützliche Neuerung in PHP 8.4 sind Propery Hooks, dadurch lässt sich redundanter Boilerplate-Code für Get()- und Set()-Methoden reduzieren. Bei folgender Beispielklasse ohne Property Hooks müssen Get()- und Set()-Methoden definiert werden:

class User 
{
    private $name;
 
    public function __construct(string $name) {
        $this->name = $name;
    }
 
    public function getName(): string {
        return $this->name;
    }
 
    public function setName(string $name): void {
         if (strlen($value) === 0) {
                throw new ValueError("Name must be non-empty");
        }
        $this->name = $name;
    }
}

Mit Property Hooks lässt die Klasse wie folgt vereinfachen:

class User 
{
    public string $name {
        set {
            if (strlen($value) === 0) {
                throw new ValueError("Name must be non-empty");
            }
            $this->name = $value;
        }
    }
 
    public function __construct(private string $name) {
        $this->name = $name;
    }
}

Für Arrays gibt es nun 4 zusätzliche Callback-Funktionen array_find(), array_find_key(), array_any() und array_all(). Zur Nutzung dieser Funktionen beachten Sie die folgenden Beispiele:

$array = [
    'a' => 'dog',
    'b' => 'cat',
    'c' => 'cow',
    'd' => 'duck',
    'e' => 'goose',
    'f' => 'elephant'
];
 
// Find the first animal with a name longer than 4 characters.
var_dump(array_find($array, function (string $value) {
    return strlen($value) > 4;
})); // string(5) "goose"

// Find the first animal with a name longer than 4 characters.
var_dump(array_find_key($array, function (string $value) {
    return strlen($value) > 4;
})); // string(1) "e"

// Check, if any animal name is longer than 5 letters.
var_dump(array_any($array, function (string $value) {
    return strlen($value) > 5;
})); // bool(true)

// Check, if all animal names are shorter than 12 letters.
var_dump(array_all($array, function (string $value) {
    return strlen($value) < 12;
})); // bool(true)

Eine weitere Neuerung ist die Unterstützung von HTML5 in der DOM Extension, außerdem wurden in der XML Extension Probleme bei der Verarbeitung großer XML-Dateien behoben.

Entfernung veralteter Extensions

Die veralteten PHP-Extensions IMAP und Pspell wurden in PHP 8.4 entfernt, da die Extensions selbst sowie die zugrundeliegenden Softwarebibliotheken veraltet sind und seit Jahren nicht mehr aktualisiert wurden. Als Alternative zu Pspell kann die Extension Enchant genutzt werden.

Da es in PHP 8.4 kaum schwerwiegende nicht abwärtskompatible Änderungen zur Vorgängerversion 8.3 gibt, sind viele Web-Anwendungen bereits mit PHP 8.4 kompatibel.

Auf der PHP-Webseite finden sie eine vollständige Übersicht über alle nicht abwärtskompatiblen Änderungen und Neuerungen.

PHP 8.4 aktivieren

Sie können PHP 8.4 wie gewohnt über das Kundenmenü oder auf den Webservern per .htaccess-Konfigurationsdatei mittels folgender Direktive auswählen:

AddHandler application/x-httpd-php84 .php

Verlängerung der Sicherheitsunsterstützung

Die PHP-Entwickler haben die Phase der Sicherheitsunsterstützung für ältere PHP-Versionen um ein Jahr auf nun insgesamt zwei Jahre verlängert. Damit wird die PHP-Version 8.1 noch bis zum 31.12.2025 mit Sicherheitsupdates versorgt.
Die PHP-Version 8.2 wechselt ab dem 1.1.2025 in die Phase der Sicherheitsunsterstützung. Ab dann wird es für diese PHP-Version nur noch Updates bei sicherheitskritischen Fehlern geben, andere nicht sicherheitskritische Fehler werden nicht mehr behoben.
Eine Übersicht der Unterstützungsphasen aller PHP-Versionen finden Sie auf der PHP-Webseite.

PHP 8.4 RC1 zum Testen verfügbar

Auf unseren Webservern steht ab heute der erste Release Candidate der kommenden PHP Version 8.4 zum Testen zur Verfügung. Die Release Candidate-Versionen von PHP dienen den PHP-Entwicklern zum Aufspüren von letzten Fehlern und Problemen, bevor die finale Version von PHP 8.4 voraussichtlich gegen Ende November erscheinen wird.

Mit dem Release Candidate können Sie testen, ob die von Ihnen genutzten PHP-Anwendungen bereits mit PHP 8.4 kompatibel sind, für den Produktivbetrieb sollten die Release Candidates jedoch aufgrund eventuell sicherheitsrelevanter Fehler nicht genutzt werden. Bis zur geplanten Veröffentlichung von PHP 8.4 werden planmäßig noch 3 weitere Release Candidate-Versionen erscheinen, die wir dann zeitnah auf den Webservern installieren werden.

Neuerungen in PHP 8.4

Die für viele Endanwender wichtigste Verbesserung bei neuen PHP-Versionen ist eine höhere Ausführungsgeschwindigkeit, wir konnten in ersten Tests jedoch keine signifikanten Performance-Unterschiede zwischen PHP 8.4 und der Vorgängerversion 8.3 feststellen.

Eine nützliche Neuerung in PHP 8.4 sind Propery Hooks, dadurch lässt sich redundanter Boilerplate-Code für Get()- und Set()-Methoden reduzieren. Bei folgender Beispielklasse ohne Property Hooks müssen Get()- und Set()-Methoden definiert werden:

class User 
{
    private $name;
 
    public function __construct(string $name) {
        $this->name = $name;
    }
 
    public function getName(): string {
        return $this->name;
    }
 
    public function setName(string $name): void {
         if (strlen($value) === 0) {
                throw new ValueError("Name must be non-empty");
        }
        $this->name = $name;
    }
}

Mit Property Hooks lässt die Klasse wie folgt vereinfachen:

class User 
{
    public string $name {
        set {
            if (strlen($value) === 0) {
                throw new ValueError("Name must be non-empty");
            }
            $this->name = $value;
        }
    }
 
    public function __construct(private string $name) {
        $this->name = $name;
    }
}

Für Arrays gibt es nun 4 zusätzliche Callback-Funktionen array_find(), array_find_key(), array_any() und array_all(). Beachten Sie dazu folgende Beispiele:

$array = [
    'a' => 'dog',
    'b' => 'cat',
    'c' => 'cow',
    'd' => 'duck',
    'e' => 'goose',
    'f' => 'elephant'
];
 
// Find the first animal with a name longer than 4 characters.
var_dump(array_find($array, function (string $value) {
    return strlen($value) > 4;
})); // string(5) "goose"

// Find the first animal with a name longer than 4 characters.
var_dump(array_find_key($array, function (string $value) {
    return strlen($value) > 4;
})); // string(1) "e"

// Check, if any animal name is longer than 5 letters.
var_dump(array_any($array, function (string $value) {
    return strlen($value) > 5;
})); // bool(true)

// Check, if all animal names are shorter than 12 letters.
var_dump(array_all($array, function (string $value) {
    return strlen($value) < 12;
})); // bool(true)

Eine weitere Neuerung ist die Unterstützung von HTML5 in der DOM Extension, außerdem wurden in der XML Extension Probleme bei der Verarbeitung großer XML-Dateien behoben.

Entfernung veralteter Extensions

Die veralteten PHP-Extensions IMAP und Pspell wurden in PHP 8.4 entfernt, da die Extensions selbst sowie die zugrundeliegenden Softwarebibliotheken veraltet sind und seit Jahren nicht mehr aktualisiert wurden. Als Alternative zu Pspell kann die Extension Enchant genutzt werden.

Da es in PHP 8.4 kaum schwerwiegende nicht abwärtskompatible Änderungen zur Vorgängerversion 8.3 gibt, sollten viele Web-Anwendungen bereits mit PHP 8.4 kompatibel sein.

Eine Übersicht über alle Änderungen und Neuerungen in PHP 8.4 finden sie hier.

PHP 8.4 aktivieren

Sie können PHP 8.4 wie gewohnt über das Kundenmenü oder auf den Webservern per .htaccess-Konfigurationsdatei mittels folgender Direktive auswählen:

AddHandler application/x-httpd-php84 .php

PHP 8.3 ist verfügbar

PHP 8.3 Logo

Das PHP-Entwicklerteam stellt jedes Jahr gegen Ende November eine neue Version der von vielen bekannten Web-Anwendungen genutzten Skriptsprache PHP bereit. Heute ist die PHP-Version 8.3 erschienen, die Sie ab sofort auf unseren Webservern nutzen können.

Neuerungen in PHP 8.3

Die meisten Neuerungen in PHP 8.3 betreffen Softwareentwickler, die neue Funktionen und Attribute verwenden können.

Für JSON-Zeichenketten gibt es eine neue Funktion json_validate(), mit der diese auf syntaktische Gültigkeit geprüft werden kann. Bisher musste dazu die Funktion json_decode() genutzt werden, die jedoch deutlich langsamer ist und wesentlich mehr Speicher benötigt, was bei sehr langen JSON-Zeichenketten zu Problemen führen kann.

Eine weitere Neuerung ist das Attribut #[Override], mit dem eine Methode anzeigen kann, dass sie eine Methode einer übergeordneten Klasse überschreibt. Falls sich der Name oder die Signatur der Methode in der übergeordneten Klasse z.B. nach einem Update ändert, würde dies häufig unbemerkt bleiben und könnte zu unerwarteten Problemen führen. Durch das Override-Attribut würde es in diesem Fall eine eindeutige Fehlermeldung geben und die Anwendungsentwickler können das Problem sofort erkennen und beheben.

Beispiel

abstract class ParentClass {
    public function MethodImplementation(): int {
        return 1;
    }
}

final class ChildClass extends ParentClass {
    #[Override]
    public function MethodImplementation(): int {
        return 2;
    }
}

Angenommen, der Name der Methode MethodImplementation() ändert sich wie folgt:

abstract class ParentClass {
    public function NewMethodImplementation(): int {
        return 1;
    }
}

Dann gäbe es in der abgeleiteten Klasse eine Fehlermeldung und der Name der Methode müsste angepasst werden.

Ebenfalls neu ist die Möglichkeit Typen für Klassenkonstanten festzulegen. Dies verbessert die Typsicherheit bei abgeleiteten Klassen oder Interface-Implentierungen.

Beispiel

class ConstantTest {
    const string TEST_CONSTANT = 'test';
}

Die in PHP-Version 8.2 modernisierte Random-Extension wurde außerdem um einige neue Funktionen erweitert. Besonders interessant ist die Funktion getBytesFromString(), die eine Zeichenkette mit vorgegebener Länge aus vorgegebenen Zeichen erzeugt, damit lassen sich z.B. sehr einfach Passwörter generieren.

Eine Übersicht über alle Neuerungen und Änderungen sowie Hinweise zur Migration von älteren PHP-Versionen finden sie hier.

Da es in PHP 8.3 kaum schwerwiegende nicht abwärtskompatible Änderungen zur Vorgängerversion 8.2 gibt, sollten viele Web-Anwendungen bereits mit PHP 8.3 kompatibel sein.

PHP 8.3 aktivieren

Sie können PHP 8.3 wie gewohnt über das Kundenmenü für eine bestimmte Domain oder das gesamte Paket aktivieren.

Möchten Sie PHP 8.3 nur für ein bestimmtes Unterverzeichnis nutzen, können Sie folgende .htaccess-Direktive verwenden:

AddHandler application/x-httpd-php83 .php

PHP 8.0 End of Life

Etwa zeitgleich mit der Veröffentlichung von PHP 8.3 stellen die PHP-Entwickler die Unterstützung der PHP-Version 8.0 vollständig ein. Für die PHP Version 8.1 wird es ab Dezember nur noch Updates bei sicherheitskritischen Fehlern geben, nur die PHP-Versionen 8.2 und 8.3 werden dann noch vollständig unterstützt.

Falls Sie noch eine ältere PHP-Version als 8.1 für Ihre Web-Anwendungen nutzen, sollten Sie diese möglichst bald auf PHP 8.1 oder neuer umstellen.

Wir werden für ältere nicht mehr unterstützte PHP-Versionen weiterhin regelmäßig zurückportiere Sicherheitsupdates bereitstellen, es gibt aber keine Garantie, dass alle eventuell bestehenden Sicherheitslücken zeitnah geschlossen werden.

PHP 8.3 RC1 zum Testen verfügbar

Auf unseren Webservern steht ab heute der erste Release Candidate der kommenden PHP Version 8.3 zum Testen zur Verfügung. Die Release Candidate-Versionen von PHP dienen den PHP-Entwicklern zum Aufspüren von letzten Fehlern und Problemen, bevor die finale Version von PHP 8.3 voraussichtlich gegen Ende November erscheinen wird.

Mit dem Release Candidate können Sie testen, ob die von Ihnen genutzten PHP-Anwendungen bereits mit PHP 8.3 kompatibel sind, für den Produktivbetrieb sollten die Release Candidates jedoch aufgrund eventuell sicherheitsrelevanter Fehler nicht genutzt werden. Bis zur geplanten Veröffentlichung von PHP 8.3 werden noch 5 weitere Release Candidate-Versionen erscheinen, die wir dann zeitnah auf den Webservern installieren werden.

Neuerungen in PHP 8.3

Die für viele Endanwender wichtigste Verbesserung bei neuen PHP-Versionen ist eine höhere Ausführungsgeschwindigkeit, wir konnten in ersten Tests jedoch keine signifikanten Performance-Unterschiede zwischen PHP 8.3 und der Vorgängerversion 8.2 feststellen.

Für JSON-Zeichenketten gibt es nun eine Funktion json_validate(), mit der diese auf syntaktische Gültigkeit geprüft werden kann. Bisher musste dazu die Funktion json_decode() genutzt werden, die jedoch deutlich langsamer ist und wesentlich mehr Speicher benötigt, was bei sehr langen JSON-Zeichenketten zu Problemen führen kann.

Eine weitere Neuerung ist das Attribut #[Override], mit dem eine Methode anzeigen kann, dass sie eine Methode einer übergeordneten Klasse überschreibt. Falls sich der Name oder die Signatur der Methode in der übergeordneten Klasse ändert, würde dies normalerweise unbemerkt bleiben, und könnte zu unerwarteten Problemen führen. Durch das Override-Attribut würde es in diesem Fall eine eindeutige Fehlermeldung geben, und die Anwendungsentwickler können das Problem sofort erkennen und beheben.

Die in PHP-Version 8.2 modernisierte Random-Extension wurde außerdem um einige neue Funktionen erweitert. Besonders interessant ist die Funktion getBytesFromString(), die eine Zeichenkette mit vorgegebener Länge aus vorgegebeben Zeichen erzeugt, damit lassen sich z.B. sehr einfach Passwörter generieren.

Da es in PHP 8.3 kaum schwerwiegende nicht abwärtskompatible Änderungen zur Vorgängerversion 8.2 gibt, sollten viele Web-Anwendungen bereits mit PHP 8.3 kompatibel sein.

PHP 8.3 aktivieren

Sie können PHP 8.3 wie gewohnt über das Kundenmenü oder auf den Webservern per .htaccess-Konfigurationsdatei mittels folgender Direktive auswählen:

AddHandler application/x-httpd-php83 .php

PHP 8.0 End of Life

Mit der gegen Ende November geplanten Veröffentlichung der finalen Version von PHP 8.3 stellen die PHP-Entwickler die Unterstützung der PHP-Version 8.0 vollständig ein, für die PHP Version 8.1 wird es ab dann nur noch Updates bei sicherheitskritischen Fehlern geben. Falls Sie noch eine ältere PHP-Version als 8.1 für Ihre Web-Anwendungen nutzen, sollten Sie diese möglichst bald auf PHP 8.1 oder neuer umstellen.

Probleme mit Leerzeichen in Apache Rewrite Regeln

Wir haben heute früh ein Update der Webserver-Software Apache auf die aktuelle Version 2.4.56 eingespielt. Seit diesem Update gibt es nun vereinzelt Probleme beim Aufruf von URLs mit Leerzeichen.

Fehlermeldung

Falls Sie eine URL mit einem Leerzeichen aufrufen, erhalten Sie unter Umständen seit heute früh die folgende Fehlermeldung:

Forbidden

You don’t have permission to access this resource.

In den Error Logs findet sich dann folgender Fehler:

Rewritten query string contains control characters or spaces

Besonders häufig betroffen sind die Content Management Systeme Drupal und MODX, die problematische Rewrite-Regeln in der automatisch generierten .htaccess-Konfigurationsdatei verwenden.

Fehlerursache

Die Ursache für den Fehler ist ein fehlendes Escaping von Sonderzeichen in den Rewrite Regeln einer .htaccess-Konfigurationsdatei. Das Escaping von Sonderzeichen in Rewrite Strings war bis Apache Version 2.4.55 optional, seit Version 2.4.56 ist es aus Sicherheitsgründen (CVE-2023-25690) verpflichtend.

Sie können das Escaping über die Flags B (bei Umleitung auf Query Strings) bzw. BNP (bei Umleitung auf Pfade) aktivieren. Weitere Informationen finden Sie in der Apache-Dokumentation.

Beispiel

Die folgende Rewrite Regel des MODX Content Management Systems erzeugt bei Leerzeichen in der URL eine Fehlermeldung:

RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]

Um die Fehlermeldung zu beheben, muss die Regel wie folgt geändert werden:

RewriteRule ^(.*)$ index.php?q=$1 [B,L,QSA]

PHP 8.2 ist verfügbar

Das Entwicklerteam der für Web-Anwendungen häufig genutzten Programmiersprache PHP stellt traditionell gegen Ende des Jahres eine neue Version der Programmiersprache bereit. Heute ist die neue Version 8.2 veröffentlicht worden, die wir gerade auf allen Webservern installiert haben.

Da es sich um ein sogenanntes Minor-Release handelt, halten sich die nicht abwärtskompatiblen Änderungen zur Vorgängerversion in Grenzen, viele bekannte PHP-Anwendungen wie WordPress sind daher bereits mit der neuen PHP-Version nutzbar.

Neuerungen und Änderungen in PHP 8.2

Die für die meisten Nutzer:innen wichtigste Verbesserung bei neuen PHP-Versionen ist eine höhere Ausführungsgeschwindigkeit, wodurch sich die Seitenladezeit von Web-Anwendungen wie WordPress reduziert. Wir konnten in ersten Tests Verbesserungen von bis zu 5% feststellen.

Eine für viele PHP-Entwickler nützliche neue Funktion ist mysqli_execute_query(), die mysqli_prepare(), mysqli_execute() und mysqli_stmt_get_result() in einem einzigen Aufruf verbindet. Diese Funktion kann ähnlich einfach wie mysqli_query() genutzt werden, ist aber nicht für sogenannte SQL Injection Angriffe anfällig. Parameterwerte werden wie bei Prepared Statements mit den Platzhalter ? übergeben, z.B.:

foreach ($db->execute_query('SELECT * FROM user WHERE name LIKE ? AND type_id IN (?, ?)', [$name, $type1, $type2]) as $row) {
    print_r($row);
}

Eine weitere sinnvolle Verbesserung betrifft den Schutz von vertraulichen Daten. Bei unerwarteten Fehlern während der Ausführung eines PHP-Scripts werden häufig sogenannte Stack Traces ausgegeben, um die Fehleranalyse zu erleichtern. Dabei können unter Umständen jedoch auch vertrauliche Parameter wie Datenbankpasswörter ausgegeben werden, z.B:

PDOException: SQLSTATE[HY000] [2002] No such file or directory in /homepages/u123456/test.php:3
Stack trace:
#0 /homepages/u123456/test.php(3): PDO->__construct('mysql:host=db1', 'u123456', 'Geheimes Passwort')
#1 {main}

Um dies zu verhindern, können solche vertraulichen Parameter nun durch das Attribut \SensitiveParameter geschützt werden, z .B.:

<?php
 
function test(
    $foo,
    #[\SensitiveParameter] $bar,
) {
    throw new \Exception('Error');
}
 
test('foo', 'bar');
 
/*
Fatal error: Uncaught Exception: Error in test.php:8
Stack trace:
#0 test.php(11): test('foo', Object(SensitiveParameterValue))
#1 {main}
  thrown in test.php on line 8
*/

Eine für die Zukunft wichtige Änderung ist die Abkündigung der Unterstützung von sogenannten dynamischen Properties. Bisher konnten in PHP beliebige Properties zu Objekten hinzugefügt werden, auch wenn diese gar nicht in der Klasse definiert waren, z.B.:

class User{
  public string $name;
}

$user = new User();
$user->email = 'dynamic@property.com';

Diese dynamischen Properties gelten nun als veraltet und werden in einem späteren PHP Major Release gestrichen.

Eine Übersicht über alle Änderungen und Neuerungen in PHP 8.2 sowie Hinweise zum Wechsel von älteren PHP-Versionen finden Sie hier.

PHP 8.2 aktivieren

Sie können PHP 8.2 wie gewohnt über das Kundenmenü oder auf den Webservern per .htaccess-Konfigurationsdatei mittels folgender Direktiven auswählen:

AddHandler application/x-httpd-php82 .php

PHP 7.4 End of Life

Mit der Veröffentlichung von PHP 8.2 stellen die PHP-Entwickler die Unterstützung der PHP-Version 7.4 vollständig ein, für die PHP Version 8.0 wird es ab dann nur noch Updates bei sicherheitskritischen Fehlern geben.

Sie können PHP 7.4 weiterhin auf unseren Webservern nutzen, wir werden für PHP 7.4 und für alle anderen veralteten PHP-Versionen regelmäßig zurückportierte Sicherheitsupdates von neueren PHP-Versionen bereitstellen. Diese Updates werden jedoch nur bei schwerwiegenden Sicherheitsproblemen bereitgestellt, kleinere Fehler werden nicht mehr behoben.

Falls Sie noch eine ältere PHP-Version als 8.0 für Ihre Web-Anwendungen nutzen, sollten Sie diese möglichst bald auf PHP 8.0 oder neuer umstellen.

PHP 8.2 RC1 zum Testen verfügbar

Wir haben auf unseren Webservern den ersten Release Candidate der kommenden PHP Version 8.2 installiert. Die Release Candidate-Versionen dienen zum Aufspüren von letzten Fehlern und Problemen, bevor die finale Version von PHP 8.2 voraussichtlich gegen Mitte November veröffentlicht wird.

Sie können damit testen, ob die von Ihnen genutzten PHP-Anwendungen mit PHP 8.2 kompatibel sind, für den dauerhaften Produktivbetrieb sollten die Release Candidates jedoch nicht genutzt werden. Sobald weitere Release Candidates erscheinen, aktualisieren wir diese umgehend auf unseren Servern.

Neuerungen in PHP 8.2

Die für die meisten Nutzer:innen wichtigste Verbesserung bei neuen PHP-Versionen ist eine höhere Ausführungsgeschwindigkeit, wodurch sich die Seitenladezeit von Web-Anwendungen wie WordPress reduziert. Wir konnten in ersten Tests Verbesserungen von bis zu 5% feststellen.

Eine für viele PHP-Entwickler nützliche neue Funktion ist mysqli_execute_query(), die mysqli_prepare(), mysqli_execute() und mysqli_stmt_get_result() in einem einzigen Aufruf verbindet. Diese Funktion kann ähnlich einfach wie mysqli_query() genutzt werden, ist aber nicht für sogenannte SQL Injection Angriffe anfällig.

Bei unerwarteten Fehlern während der Ausführung eines PHP-Scripts werden häufig sogenannte Stack Traces ausgegeben, um die Fehleranalyse zu erleichtern. Dabei können unter Umständen jedoch auch vertrauliche Parameter wie Datenbankpasswörter ausgegeben werden. Um dies zu verhindern, können solche vertraulichen Parameter nun durch das Attribut \SensitiveParameter geschützt werden.

Eine Übersicht über alle Änderungen und Neuerungen in PHP 8.2 sowie Hinweise zum Wechsel von älteren PHP-Versionen finden Sie hier.

PHP 8.2 aktivieren

Sie können PHP 8.2 wie gewohnt über das Kundenmenü oder auf den Webservern per .htaccess-Konfigurationsdatei mittels folgender Direktiven auswählen:

AddHandler application/x-httpd-php82 .php

PHP 7.4 End of Life

Mit der gegen Mitte November geplanten Veröffentlichung der finalen Version von PHP 8.2 stellen die PHP-Entwickler die Unterstützung der PHP-Version 7.4 vollständig ein, für die PHP Version 8.0 wird es ab dann nur noch Updates bei sicherheitskritischen Fehlern geben. Falls Sie noch eine ältere PHP-Version als 8.0 für Ihre Web-Anwendungen nutzen, sollten Sie diese möglichst bald auf PHP 8.0 oder neuer umstellen.

Phishing-Mails im Namen von Variomedia

Heute Nacht wurden massenhaft Phishing-Mails im Namen von Variomedia an bei uns gehostete Postfächer gesendet, in denen die Empfänger dazu aufgefordert werden, das Variomedia-Webmail zu aktualisieren. Auf der verlinkten Webseite werden die Zugangsdaten des Postfachs abgefragt, die dann in den Händen von Unbefugten landen.

Phishing-Mail, die an Variomedia-Kunden geschickt wurde
Phishing-Mail, die an Variomedia-Kunden geschickt wurde

Diese Mails sind relativ gut gemacht und nicht auf den ersten Blick als Fälschung zu erkennen. Falls Sie der Aufforderung nachgekommen sind, und Ihre Zugangsdaten hier eingegeben haben, sollten Sie umgehend das Passwort des betroffenen E-Mail-Postfachs ändern.

Hinweise zur Erkennung von Phishing-Mails

Echte E-Mails von Variomedia enthalten immer eine persönliche Anrede mit Ihrem Namen.

In Phishing-Mails werden häufig E-Mail-Absenderadressen und HTTP-Links genutzt, die im Beschreibungstext eine abweichende Adresse anzeigen. So wird z.B. als Absenderadresse “Variomedia” angezeigt aber nicht die tatsächliche Absenderadresse nutzt eine .ca Domain, und im Link steht “https://www.variomedia.de/mail/pakete/”, doch der tatsächliche Link verweist auf eine .at Domain.

E-Mails von Variomedia haben immer eine Absenderadresse (nach dem @) der Domain variomedia.de oder einer oder einer Sub-Domain von variomedia.de.

Falls wir Ihnen per E-Mail einen Link auf eine unserer Webseiten senden, so achten Sie bitte darauf, dass in der Adresszeile des Web-Browsers eine Webseite unter der Domain variomedia.de oder einer Sub-Domain von variomedia.de geladen wird. Nur auf diesen Webseiten können Sie gefahrlos Ihre E-Mail-Zugangsdaten eingeben.

Ursprung der E-Mail-Adressen

Wir können nicht sicher sagen, woher die Versender die E-Mail-Adressen haben. Es scheint sich um eine relativ alte Liste zu handeln, da bei uns viele Postfächer angeschrieben wurden, die es gar nicht mehr gibt. Alle von uns stichprobenhaft getesteten E-Mail-Adressen befinden sich in Listen von früheren Leaks. In welchen Leaks Ihre eigene E-Mail-Adresse auftaucht, können Sie auf der Seite https://haveibeenpwned.com/ oder beim Angebot des deutschen Hasso-Plattner-Instituts unter https://sec.hpi.de/ilc/search?lang=de testen.

Neue Generation der OX Drive App für iOS

Open-Xchange hat im Februar eine neue Generation der OX Drive App für iOS vorgestellt, die besser in iOS integriert ist. Mit dieser neuen Version können Sie nun auf Ihre Daten in OX Drive auch über die reguläre iOS Dateien App zugreifen.

Da es sich nicht um ein einfaches Update handelt, sondern um eine komplett neu entwickelte App, die nur mit einem Open-Xchange-Server der aktuellen Version 7.10.6 funktioniert, erhalten Sie diese App nicht über die automatische Update-Funktion des App Stores. Sie müssen die alte OX Drive App (“OX Drive”) deinstallieren, und die neue OX Drive App (“OX Drive by Open-Xchange”) installieren.

Die alte OX Drive App für iOS funktioniert jedoch auch weiterhin, Sie müssen also nicht sofort ein Update vornehmen.

Die Änderung betrifft nur iOS Geräte, die OX Drive App für Android muss nicht neu installiert werden.