Contao 4.9 – Neue Version mit Long-Term-Support

Das Content-Management-System (CMS) Contao hält sich seit Jahren in den Top 5 unserer regelmässig veröffentlichen CMS-Ranglisten (2013, 2014, 2015, 2016, 2017, 2019). Das ist kein Wunder, denn das Open-Source-CMS hat gerade in den deutschsprachigen Ländern Deutschland, Österreich und der Schweiz eine grosse und treue Fangemeinde. Dafür sorgt auch die Contao Association mit Sitz in der Schweiz als offizieller Trägerverein des CMS.

Contao 4.9 – Neue Version mit Long-Term-Support

Vor wenigen Tagen hat die Community nun ihre jüngste «Flagschiff-Version» 4.9 LTS zum Download freigegeben. LTS steht dabei für «Long Time Support», was konkret bedeutet, dass Version 4.9 bis im Februar 2023 mit Bugfixes und ein weiteres Jahr, also bis zum Februar 2024, mit Sicherheitsupdates versorgt wird. Das sorgt für mächtig Planungssicherheit.

Mit Contao 4.9 halten seit der letzten LTS-Version einige Verbesserungen und Neuerungen Einzug, die das CMS noch attraktiver machen.

SERP-Vorschau

Die Vorschau der «Search Engine Result Page» erlaubt es innerhalb von Contao die Seite so anzuzeigen, wie sie voraussichtlich in den Suchresultaten von Google aussehen wird. So können Titel, Beschreibung und URL einer Seite bereits im Vorfeld optimiert werden.

Contao 4.9: SERP-Vorschau.

So sieht die ausgewählte Seite voraussichtlich in den Google-Suchresultaten aus.

Image Lazy Loading

Mit «Lazy Loading» werden Bilder erst geladen, wenn sie auch wirklich gebraucht werden, konkret: Wenn Sie im sichtbaren Bereich des Browsers auftauchen. Dafür kann Contao neu das loading="lazy" -Attribut im HTML-Quelltext setzen.

Zwei-Faktor-Authentifizierung

Für mehr Sicherheit ist die Funktionalität für eine Zwei-Faktor-Authentifizierung bereits standardmässig ins CMS integriert. Diese wurde nun um Backup-Codes, mit denen man sich anstellte des Bestätigungscodes anmelden kann, sowie um Trusted Devices, erweitert. Trusted Devices sind vertrauenswürdige Geräte, die nur ca. alle 60 Tage durch die Eingabe des Bestätigungscodes bestätigt werden müssen.

Contao 4.9: 2FA.

Die Zwei-Faktor-Authentifizierungsfunktion hat weitere Verbesserungen erhalten.

Crawler

Ein Crawler übernimmt den Aufbau des Suchindex und sucht nach defekten Links. Damit lassen sich nicht mehr gültige Links einfach auffinden und der Inhalt so aktuell halten.

Dynamisierte Favicon- und robots.txt-Verwaltung

Das Favicon und die robots.txt können neu pro Domain festgelegt werden.

Und wer es jetzt noch etwas genauer wissen will: Im untenstehenden Video, entstanden im vergangenen Oktober an der Contao-Konferenz 2019 in Duisburg, werden die Neuerungen noch einmal näher vorgestellt.

PHP 7.4 wird ab Mai 2020 neue Standardversion

Seit Ende November 2019 ist die neueste PHP-Version 7.4 bereits in einer Stable Version auf unseren Servern in Betrieb. Ab Mai 2020 machen wir PHP 7.4 nun zur neuen Standardversion. Damit liefern Webhostings von cyon zukünftig PHP-Websites standardmässig mit PHP 7.4 aus.

Ab Mai 2020: PHP 7.4 wird Standardversion.

Muss ich etwas unternehmen?

Falls Sie in Ihrem my.cyon-Konto nicht ausdrücklich eine andere PHP-Version für Ihre Website ausgewählt haben, nutzen Sie die von uns vorgegebene PHP-Standardversion. Zurzeit ist das PHP 7.1. Nach der Umstellung der Standardversion wird Ihre Website völlig automatisch mit PHP 7.4 ausgeliefert.

Sind Sie unsicher, ob Ihre Website auch mit PHP 7.4. wie gewohnt funktioniert? Mit wenigen Mausklicks können Sie das bereits jetzt testen.

Wie prüfe ich, ob meine Website auch mit PHP 7.4 funktioniert?

Die beliebtesten CMS wie WordPress oder Contao sind bereits mit PHP 7.4 kompatibel. Um zu testen, ob auch Ihre Website mit PHP 7.4 problemlos funktioniert, gehen Sie wie folgt vor:

  1. Loggen Sie sich in Ihr my.cyon-Konto ein.
  2. Wählen Sie den Menüpunkt «Erweitert > PHP-Versionsmanager».
  3. Wählen Sie für die gewünschte Domain oder einen einzelnen Unterordner die PHP-Version 7.4.
  4. PHP-Versionsmanager mit PHP 7.4

  5. Rufen Sie anschliessend Ihre Website auf und prüfen Sie diese auf sichtbare Fehler oder fehlende Elemente. Melden Sie sich ausserdem im Administrationsbereich Ihres CMS an und prüfen Sie, ob Fehler in der Darstellung oder Fehlermeldungen sichtbar sind.
  6. Funktioniert Ihre Website auch mit PHP 7.4 wie gewünscht, wählen Sie wieder den Wert «Standard» für die gewünschten Verzeichnisse. So nutzen Sie immer automatisch die jeweils gültige Standardversion.

Mögliche Stolpersteine: Plugins und Themes

Änderungen an der PHP-Version verursachen mit den Kernsystemen von WordPress, Joomla, TYPO3, Drupal, Contao und Co. in der Regel keine Probleme. Plugins, Erweiterungen und Themes, die noch nicht auf die neueste PHP-Version vorbereitet sind, können hingegen Fehlermeldungen verursachen. Legen Sie deshalb bei der Prüfung Ihrer Website mit PHP 7.4 ein besonderes Augenmerk auf Plugins und Themes und etwaige Fehlerausgaben. In vielen Fällen genügt das Deaktivieren des Plugins oder der Wechsel auf ein moderneres Theme, um die eigene Website wieder fit für die kommenden Jahre zu machen.

Wann wird die PHP-Standardversion für mein Webhosting umgestellt?

Wir werden mit der Umstellung der PHP-Standardversion ab Mai 2020 beginnen. Um Ihnen bei allfälligen Problemen mit der Umstellung rasch zur Seite stehen zu können, werden wir die Umstellung auf den verschiedenen Servern zu unterschiedlichen Zeitpunkten vornehmen. Den genauen Zeitplan veröffentlichen wir zu einem späteren Zeitpunkt. Wir erinnern unsere Kundinnen und Kunden ausserdem vor der Umstellung per E-Mail.

Captchas: Es muss nicht immer reCAPTCHA sein

Was wären Websites ohne Kontaktformulare. Oder Kommentarfelder. Sie bieten eine Austauschmöglichkeit oder gar ein Mitwirken von Website-Besuchern. Falls Sie schon eine Weile mit solchen Elementen auf Ihrer Website arbeiten, kennen Sie vielleicht die eine oder andere Form von Kontaktformular- oder Kommentar-Spam.

Captchas: Es muss nicht immer reCAPTCHA sein.

Solche Spam-Attacken werden automatisiert durchgeführt und in der Regel hilft eine Absicherung mit einem Captcha. Captcha ist die Abkürzung für «Completely automated public turing test to tell computers and humans apart» – also ein Test, der Mensch und Maschine unterscheiden soll.

In der Regel sind diese Tests in Form von kleinen Bildrätseln sichtbar, die nur Menschen lösen können sollten. Wir bei cyon empfehlen unseren Kundinnen und Kunden ebenfalls den Einsatz von Captchas, um sich vor bösen Überraschungen zu schützen.

reCAPTCHA: Der Platzhirsch

Der verbreitetste Dienst für solche Captcha-Lösungen heisst reCAPTCHA. Der Dienst wurde ursprünglich an der Carnegie Mellon University entwickelt und später von Google aufgekauft. Er definiert quasi den Standard und gilt als sehr zuverlässig.

Was viele nicht wissen: Die Zuverlässigkeit kommt nicht nur von den gut ausgewählten Rätseln. Im Hintergrund erhält jede Benutzerin und jeder Benutzer einen Fingerabdruck, der eine grosse Rolle bei Googles Turing-Test spielt. Jede Anfrage erhält einen Score mit undurchsichtigem Ranking, bei dem viele Faktoren mitspielen. Das könnten die IP-Adresse oder auch google.com-Cookies sein. Grundsätzlich vermute ich, dass Google hier möglichst viele verfügbare Daten hinzuzieht, weil das den Dienst zuverlässig macht.

Ich halte es für problematisch, dass dieser Vorgang im Hintergrund abläuft und Google so von jeder reCAPTCHA-ausfüllenden Person Daten sammeln kann. Welche Website wurde zu welchem Zeitpunkt von wo aus aufgerufen? Zusammen mit all den anderen Daten, die Google über jeden von uns hat, liesse sich daraus ein sehr genaues Profil erstellen. Wer versucht, sich diesem Profiling zu entziehen, indem sie oder er zum Beispiel über das Tor-Netzwerk versucht, ein reCAPTCHA auszufüllen, sieht sich oft gleich mit mehreren und schier unlösbaren Bild-Rätseln konfrontiert.

Alternativen zu reCAPTCHA

Wer für seine eigene Website nicht auf reCAPTCHA setzen will: Es gibt einige sehr passable Alternativen zum Platzhirsch. Die meisten davon sind auch sehr einfach integrierbar. In unserem Supportcenter-Artikel «Captcha», haben wir einige dieser Lösungen für Sie gesammelt. Ein kleiner Vorgeschmack:

Versteckte Formularfelder (Honeypot-Felder)

Eine bereits seit 2007 relativ gut funktionierende Methode, sind versteckte Formularfelder. Nicht speziell für Ihre Website geschriebene Spam-Scripts sind nicht intelligent genug, um ein Formularfeld mit dem Namen «URL» leer zu lassen. Wenn das Formularfeld mittels CSS versteckt wird, fallen 99.9% aller Spambots darauf herein. Vergessen Sie dabei bitte nicht, über ein <label>-Element die Barrierefreiheit zu gewährleisten.

Antispam Bee für WordPress

Angesichts der Beliebtheit von WordPress, widmen wir unserem Plugin-Tipp einen eigenen Abschnitt. Antispam Bee ist ein zuverlässig arbeitendes Open-Source-Plugin, das wenig Daten sammelt und einem gleichzeitig sehr viel Kontrolle lässt. Wir setzen Antispam Bee selber schon seit Jahren erfolgreich auf unserem Blog ein und können das Plugin uneingeschränkt weiterempfehlen.

Antispam Bee lässt sich individuell konfigurieren.

Antispam Bee lässt sich individuell konfigurieren.

CMS-spezifische Antispam-Erweiterungen

Neben Antispam Bee für WordPress gibt es für praktisch alle Content-Management-Systeme ein grosses Sammelsurium an Captcha-Erweiterungen. Diese bringen verschiedene Technologien von Haus aus mit und sind einfach zu installieren.

Die Plugins für die beliebtesten Systeme finden Sie unter folgenden Links:

Captcha oder kein Captcha?

Nicht zuletzt stellt sich aber auch immer die Frage: Sind aufdringliche Captchas wirklich nötig? Wie oft habe ich mich schon genervt, wenn ich vor dem Absenden meiner Kontaktanfrage ein mühsames Captcha ausfüllen musste. Ich lege Ihnen deshalb ans Herz: Überlegen Sie sich vor jedem Einbau eines Captchas, ob dieses wirklich nötig ist. Vielleicht gibt es einfachere Lösungen, die Ihre Besucherinnen und Besucher weniger ausbremsen.

Web-Applikationen mit NuxtJS entwickeln

Web-Applikationen mit dem JavaScript-Framework Vue.js aufzusetzen ist nicht immer ganz trivial. In die Bresche springt hier ein weiteres Framework, das unter anderem auf Vue basiert: NuxtJS. Nuxt kann zum einen für sogenannte «Universelle Applikationen» eingesetzt werden, die auf dem Server generiert werden. Zum anderen sind damit auch «Single Page Applications» (SPA) sowie statisch generierte Applikationen möglich.

Web-Applikationen mit NuxtJS entwickeln.

Das Framework integriert andere wichtige Bibliotheken, welche für die Entwicklung von Applikationen verwendet werden. So werden z. B. der Vue Router oder die State Management Library Vuex bereits mitgeliefert . Dabei gibt Nuxt eine bestimmte Verzeichnisstruktur vor, wie die Applikation organisiert werden muss. Ausserdem integriert das Framework die Tools Webpack und Babel. Ich zeige heute, wie man eine einfache Nuxt-Applikation in wenigen Schritten aufgesetzt hat.

Startschuss: Ein neues Nuxt-Projekt erstellen

Um ein neues Projekt zu initialisieren, nutzen wir die Library create-nuxt-app. Damit das funktioniert, installieren wir zuerst Node.js sowie die passende Paketverwaltung npm, die automatisch mit Node.js mitgeliefert wird. Dann kann es losgehen: Mit dem Befehl npx create-nuxt-app my-web-app starten wir den Assistenten, der uns durch die Erstellung der neuen Applikation begleitet.

Startschuss: Ein neues Nuxt-Projekt erstellen.

Im letzten Schritt werden wir nach dem «Rendering Mode» gefragt. Wir wählen hier die Option «Single Page App». Dies bedeutet, dass wir eine normale Single Page Application bauen, ohne dabei «Server Side Rendering» (SSR) zu nutzen. Nach einem Wechsel in das Verzeichnis, wo Nuxt die Applikation generiert hat, können wir die Applikation bzw. den Entwicklungs-Server mit dem Befehl npm run dev starten.

Das Aussehen: Layouts

Im Verzeichnis layouts/ finden wir zu Beginn eine Datei mit dem Namen default.vue. Sie bestimmt das Layout, das für alle Seiten der Applikation verwendet wird. Hier könnten wir nun verschiedene Layouts definieren, vorerst reicht es aber, wenn wir das vorgegebene Layout editieren.

Die Datei ist das Grundgerüst für alle Seiten und definiert, wie diese dargestellt werden sollen. Wir möchten nun einen einfachen Header einbauen und fügen im Template folgenden Codeblock vor <nuxt /> ein:

<nav>
  <span>My app</span>
  <nuxt-link to="/about">About us</nuxt-link>
</nav>

Mit dem Codeblock haben wir hier auch gleich einen Link auf die Seite /about eingefügt, weshalb wir diese Seite jetzt noch erstellen müssen. Alles was es dafür braucht, ist eine Datei im Ordner pages/ mit dem Namen about.vue.

Der Inhalt: Pages

Das Routing einer Seite, sprich die Zusammensetzung der URL, ergibt sich bei Nuxt immer aus der Verzeichnisstruktur. Das bedeutet, dass unsere Datei about.vue unter der Adresse /about erreichbar ist.

Wir füllen die Datei nun mit Inhalt:

<template>
  <div>
    <h1>Über uns</h1>
    <p>Das ist unsere Über-uns-Seite. Wir erstellen heute eine Website mit Nuxt.</p>
  </div>
</template>

Wenn wir jetzt in unserem Browser auf den «About us»-Link klicken, sehen wir auch gleich die neu erstellte Seite:

Der Inhalt: Pages.

Der Wegweiser: Dynamisches Routing

Die Verzeichnisstruktur für Seiten kann auch dynamisch sein. Nehmen wir an, wir benötigen für verschiedene Benutzerinnen und Benutzer eine Detailansicht. Dazu erstellen wir im Verzeichnis pages/ einen neuen Ordner mit dem Namen users/ und dort wiederum eine Datei mit dem Namen _id.vue. Diese Datei befüllen wir danach mit folgendem Inhalt:

<template>
  <h1>Hallo Benutzer {{ $route.params.id }}</h1>
</template>
<script>

In unserer Navigation können wir nun Links zu den verschiedenen Benutzerinnen und Benutzern setzen. Dazu erweitern wir die Datei default.vue im Verzeichnis layouts/ mit folgendem Code:

<nuxt-link to="/users/1">Benutzerin 1</nuxt-link>
<nuxt-link to="/users/2">Benutzerin 2</nuxt-link>

Im Browser präsentiert sich das dann so:

Der Wegweiser: Dynamisches Routing.

Bereit zur Veröffentlichung: Deployment

Sind wir mit der Applikation nun soweit, dass wir sie auf den Server laden können, klappt das mit Nuxt ebenso komfortabel wie die vorherigen Schritte. Mit dem Befehl npm run generate werden die nötigen Dateien im Verzeichnis dist/ generiert. Da es sich dabei um rein statische Dateien (HTML, CSS, Bilder und JavaScript) handelt, die nicht auf dem Server ausgeführt werden müssen, lässt sich die Applikation auf jedes erdenkliche Webhosting laden. Ob per FTP, SSH oder Git, uns sind keine Grenzen gesetzt. Ich wünsche viel Spass beim Ausprobieren 🙂

Transparenzbericht 2019

Als eine von nur wenigen Schweizer Firmen veröffentlichen wir seit 2017 jährlich einen Transparenzbericht zum Vorjahr (2016, 2017, 2018). Wir versuchen so, Klarheit über die rechtlichen Anfragen zu schaffen, die bei uns von Behörden, Unternehmen und Privatpersonen eintreffen.

Im vergangenen Jahr haben uns insgesamt 33 Anfragen zu bei uns gehosteten Website-Inhalten erreicht. Wer sie gestellt hat, wie wir damit umgegangen sind und um welches Thema sich die Anfrage drehte, zeigen wir nachfolgend auf.

Anfragen zu unzulässigen Inhalten

Anfragen zu unzulässigen Inhalten stammen in der Regel von Privatpersonen und Unternehmen und werden von uns nach dem Code of Conduct Hosting der simsa bzw. des SWICO behandelt. Im Zeitraum vom 01.01.2019 – 31.12.2019 haben wir 23 Anfragen zu unzulässigen Inhalten erhalten:

Anfragesteller

Anfragesteller Anzahl Anfragen
Unternehmen 14
Privatperson 8
Eidgenössische Finanzmarktaufsicht (FINMA) 1

Land des Anfragestellers

Land Anzahl Anfragen
Schweiz 10
USA 5
Italien 3
Grossbritannien 2
Deutschland 1
Niederlande 1
Frankreich 1

Grund der Anfrage

Rechtsgebiet Anzahl Anfragen
Markenrecht 9
Phishing 4
Domain-Inhaberschaft 4
Spam 2
Persönlichkeitsrecht 2
Urheberrecht 1
Unbewilligtes Institut 1

Verfahren nach Code of Conduct

Verfahren Anzahl Anfragen
Notice-and-Notice 17
Notice-and-Takedown 6

Auskunftsersuchen von Behörden

Im Zeitraum 01.01.2019 – 31.12.2019 haben wir 10 Auskunftsersuchen von Behörden erhalten. Dabei handelte es sich um Anfragen der folgenden Instanzen:

Behörde Art der Anfrage Anzahl erhaltener Anfragen Anfragen, bei denen Daten geliefert wurden
Staatsanwaltschaft, Polizei Editionsverfügung
(Art. 263/265 StPO)
5 5
EJPD, ÜPF Rückwirkende Verkehrsdaten, Überwachung des Fernmeldeverkehrs
(Art. 18 Abs. 5 VÜPF)
5 4

Generell

Aus datenschutzrechtlichen Gründen händigen wir Daten nur auf Wunsch unserer Kunden und Kundinnen, beziehungsweise nach erfolgreicher Authentifizierung oder nach Erhalt einer behördlichen Verfügung diverser öffentlicher Einrichtungen (Staatsanwaltschaft, Dienst üPF, Finanzmarktaufsicht) aus.

Dabei wird ein Kunde oder eine Kundin nicht immer informiert. Einige Editionsverfügungen, vor allem von laufenden Untersuchungen, verlangen über einen gewissen Zeitraum Verschwiegenheit. Bei standardmässigen Code-of-Conduct-Fällen werden jeweils der Absender einer Beschwerde, sowie die betroffenen Kundinnen und Kunden kontaktiert.

Fazit

Seit dem Inkrafttreten des neuen «Bundesgesetz betreffend die Überwachung des Post- und Fernmeldeverkehrs» («Das neue BüPF») im Frühling des vergangenen Jahres erhalten wir entsprechende Anfragen des Dienst ÜPF über ein Online-Portal. Gefühlt hat sich damit die Anzahl der Anfragen etwas erhöht. Ob sich diese Wahrnehmung bestätigt, wird sich erst in den kommenden Jahren zeigen.

Wer sich für weitere Transparenzberichte interessiert, findet auf der Website von Rechtsanwalt Martin Steiger eine Liste mit weiteren Transparenzberichten.