Magento 2.3.5

Magento 2.3.5 wurde Montag, den 28. April 2020 veröffentlicht. Diese Version behebt 25 Sicherheitslücken und bringt 180 Bugfixes sowie Verbesserungen.

Sie finden die Änderungen im Detail in den Release-Notes für Open Source und Commerce sowie im offiziellen Blog-Post. Auch der Blog-Post von netz98 enthält viele nützliche Informationen.

Mark Shust bietet außerdem eine Video-Zusammenfassung:

Warum Composer-Version „2.3.5-p1“?

EntwicklerInnen werden darauf stoßen, dass man in Composer nicht wie üblich auf Version „2.3.5“ aktualisiert, sondern „2.3.5-p1“ angeben muss. Das kommt daher, dass kurz vor der Veröffentlichung noch ein Problem mit der bereits angelegten Version 2.3.5 aufgetaucht ist. Daher erschien direkt „2.3.5-p1“.

Beim nächsten Mal sollten wir wieder regulär „2.3.6“ verwenden können.

Sicherheit

Wie kritisch sind die Lücken, die Magento 2.3.5 behebt?

Adobe vergibt eine Gesamteinstufung für das Versions-Update. Der Code für das zugehörige Adobe Security Bulletin ist APSB20-22 und die Einstufung erfolgte mit „Priorität 2“.

Und was heißt Priorität 2 bei Adobe?

This update resolves vulnerabilities in a product that has historically been at elevated risk. There are currently no known exploits. Based on previous experience, we do not anticipate exploits are imminent. As a best practice, Adobe recommends administrators install the update soon (for example, within 30 days).

https://helpx.adobe.com/security/severity-ratings.html

Es ist also nicht bekannt, dass eine der Lücken aktiv ausgenutzt wird und Adobe geht nicht davon aus, dass die Lücken sehr bald ausgenutzt werden. Man sollte das Update dennoch demnächst vornehmen. Einige Lücken erlauben nämlich Remote Code Execution (RCE).

Content Security Policy (CSP)

Mit dieser Version wird es möglich, eine Content Security Policy (CSP) zu definieren. Allerdings warnt Max Chadwick davor, dass die aktuelle Implementierung noch einen geringen Nutzen hat.

Wichtige Änderung: Entfernung der Session-ID aus den URLs

Achtung, falls Sie das Feature benötigen, dass Sessions über URL übergeben werden: das war sicherheits-technisch nie ganz astrein, und mit 2.3.5 entfernt Magento die Funktionalität aus dem Standard-Verhalten.

Falls Sie nicht sicher sind, ob Sie das Feature verwenden, fragen Sie bitte Ihren technischen Dienstleister. Ein klassisches Beispiel, in dem man auf die Session-Übergabe per URL zurückgreift ist, wenn man zwei Websites/Store-Views mit unterschiedlichen Top-Level-Domains betreibt und den Warenkorb zwischen ihnen erhalten möchte.

Alternative zu 2.3.5 als schneller Fix: 2.3.4-p2

Wie schon in den letzten Versionen kann man vorab nur die Sicherheitslücken fixen, ohne die große Zahl an anderen Änderungen und Verbesserungen, um den Shop schneller sicher zu bekommen.

Dafür gibt es ein 2.3.4 Patch-Release, das wegen den oben beschriebenen Gründen „2.3.4-p2“ heißt, nicht „2.3.4-p1“.

Auslagerung von 3rd-Party-Integrationen aus dem Core

Magento hat sich entschieden, einige 3rd-Party-Integrationen aus dem Core zu entfernen und als separate kostenlose Extensions auf dem Market Place anzubieten. In 2.3.5 sind sie nur „deprecated“, also noch im Core-Code endhalten, aber in Magento 2.4.0 sind sie standardmäßig nicht mehr zu finden.

Das ist gut, weil der Core dadurch weniger Module (und damit weniger Konflikte) enthält – das beschleunigt alles normalerweise ein wenig und reduziert Sicherheitsrisiken. Wer diese Integrationen verwendet, erhält außerdem so schneller Updates.

Diese Zahlungsarten und Dienste werden ausgelagert:

  • Authorize.net
  • Authorize.net (Direct Post)
  • eWay
  • CyberSource
  • Signifyd
  • Worldpay

Google Shopping Ads Integration deaktiviert

Zeitgleich mit 2.3.5 wurde das End of Life der offiziellen Google Shopping Integration verkündet. Wer sie verwendet hat, muss leider auf eine Alternative (z.B. eine 3rd-Party-Extension) umsteigen.

Page Builder: Templates, Video-Hintergründe, abwärtskompatible Komponenten

Das Page Builder (nur für Commerce verfügbar) unterstützt jetzt Templates. Damit kann man bestehenden Inhalt als Vorlage für neue Content-Bereiche verwenden.

Für Banner, Slider oder ganze Content-Zeilen können nun Video-Hintergründe verwendet werden. Außerdem kann man nun die Höhe dieser Elemente (auch auf komplette Seitenhöhe) über CSS-Angaben steuern.

Nicht zuletzt können Komponenten nun verschiedene Versionen haben. Der Vorteil: wenn man auf eine neue Magento-Version und damit eine neue Komponente-Version updatet, dann funktionieren die alten Inhalte weiterhin, bis man sie updatet.

PayPal Pro mit Chrome >= 80 kompatibel

Google Chrome hat in Version 80 Änderungen am Umgang mit Samesite-Cookies eingeführt, wodurch PayPal Pro nicht korrekt funktioniert. (Die Änderung hat bei anderen 3rd-Party-Payments auch Probleme ausgelöst und Google hat sie wegen der Corona-Pandemie temporär zurück genommen. Früher oder später wird die Änderung jedoch schlagend.)

Mit dem Update funktioniert PayPal Pro auch mit Chrome >= 80.

PHPStan Integration

Gute Neuigkeiten für EntwicklerInnen: es gibt nun einen statischen Code-Test für PHPStan, den man auch für den eigenen Code verwenden kann.

PWA Studio 6.0.0

Die neue Version von PWA Studio erschien zeitgleich mit 2.3.5 und bringt unter anderem:

  • eine erste Möglichkeit, die Core-API zu erweitern und das Standard-Verhalten von Magneto zu modifizieren
  • verbessertes Caching über Apollo
  • die Vermeidung des Speicherns von sensitiven Daten
  • neue Komponenten für die Warenkorb-Seite

Redis Performance-Verbesserungen

2.3.5. verbessert die Performance, wenn man Redis als Cache-Backend einsetzt.

Zu beachtende Änderungen

Für ProgrammiererInnen relevant:

  • Symfony-Komponenten wurden auf die aktuelle LTS-Version 4.4 aktualisiert. Das gibt normalerweise keine Probleme.
  • Die verbliebenen Zend-Framework-Komponenten wurden zu Laminas migriert. Auch diese Änderungen sind rückwärts-kompatibel. Wenn man bisher Zend-Framework-Komponenten verwendet, sollte man aber beginnen, seinen Code auf Laminas umzustellen.

Neu unterstützte Software-Versionen

2.3.5 unterstützt nun:

  • Elasticsearch 7.5