Fähigkeitenlisten für TYPO3-Erweiterungen: Zeigen, was eine Erweiterung wirklich tut

Das neue Projekt typo3-capability-manifest zeigt, was eine Erweiterung in TYPO3 tut. Jede Erweiterung beschreibt ihre Funktionen in einer Datei. Ein Werkzeug prüft diese Angaben.

Auf einen Blick

  • Erweiterungen beschreiben ihre Funktionen in einer Datei namens Configuration/Capabilities.yaml.
  • Spezielle Befehle prüfen diese Beschreibungen. Ein Risikowert zeigt an, wie gefährlich eine Erweiterung sein kann.
  • Regeln für die Internetseite bestimmen, welche Funktionen erlaubt sind.
  • Das Projekt ist neu. Es ist ein Entwurf und noch nicht fertig.

Sie installieren eine TYPO3-Erweiterung. Sie wissen aber oft nicht, was die Erweiterung genau tut. Erstellt die Erweiterung neue Datenbanktabellen? Verbindet sich die Erweiterung mit dem Internet? Ändert die Erweiterung wichtige Programmteile von TYPO3? Heute müssen Sie dafür den gesamten Programmcode lesen. Das ist sehr schwer und dauert lange.

Das Projekt typo3-capability-manifest hat eine neue Idee. Jede Erweiterung schreibt ihre Fähigkeiten in eine einfache Datei. Diese Datei ist eine YAML-Datei. Spezielle Werkzeuge prüfen diese Datei automatisch. Die Werkzeuge vergleichen die Liste mit dem echten Code. Die Werkzeuge berechnen auch einen Wert für das Risiko. Die Idee kommt von einem Modell für das System WordPress.


Inhaltsverzeichnis  

Überblick

Die Idee hinter den Fähigkeitenlisten für TYPO3.

Funktionen im Detail

Der Aufbau der Listen, die Befehle und die Risikowerte.

Installation

So installieren Sie das Werkzeug und starten erste Befehle.

Fazit

Unsere Meinung und die Pläne für die Zukunft.

Überblick  

Erweiterungen dürfen in TYPO3 fast alles machen. Sie können Programmteile überschreiben. Sie können Daten an andere Server senden. Sie können die Datenbank verändern. Das ist gut für die Flexibilität von TYPO3. Aber es macht die Sicherheit schwer prüfbar.

Das neue Werkzeug hilft bei diesem Problem. Eine Datei beschreibt alle Fähigkeiten der Erweiterung. Die Datei heißt Configuration/Capabilities.yaml. Ein Computer vergleicht diese Liste mit dem Code. Gibt es Unterschiede? Dann meldet das Werkzeug einen Fehler.

Das Projekt enthält bereits Beispiele. Es gibt Listen für die 20 beliebtesten TYPO3-Erweiterungen.

TYPO3 v13.4 LTS und v14

Diese Erweiterung läuft mit TYPO3 Version 13.4 und Version 14. Sie läuft mit der PHP-Version 8.2 oder neuer. Das Projekt ist noch in der Testphase. Die Befehle funktionieren bereits. Aber das Dateiformat kann sich noch ändern. Die Nutzung erfolgt auf eigene Gefahr.

Funktionen im Detail  

Der Aufbau der Liste  

Die Datei Configuration/Capabilities.yaml zeigt, was eine Erweiterung tut:

FähigkeitBedeutungRisikowert
network:outbound:anyBeliebige Verbindungen in das Internet5
xclass:overrideÜberschreiben von TYPO3-Klassen4
auth:providerEigene Anmeldung für Benutzer4
database:writeDaten in die Datenbank schreiben3
database:readDaten aus der Datenbank lesen1
subsystem:frontendNutzt die normale Anzeige von TYPO30

Der Risikowert ist die Summe aller Punkte. Es gibt diese Stufen für das Risiko: 0 bis 4 Punkte bedeuten ein geringes Risiko. 5 bis 9 Punkte bedeuten ein mittleres Risiko. 10 bis 14 Punkte bedeuten ein hohes Risiko. Ab 15 Punkten ist das Risiko sehr hoch.

Befehle für die Befehlszeile  

BefehlFunktion
capability:generateLiest den Code und erstellt einen Entwurf für die Liste
capability:verifyVergleicht die Liste mit dem echten Code und zeigt Fehler
capability:auditErstellt einen genauen Bericht über alle Fehler
capability:policy-checkPrüft alle Erweiterungen auf der Internetseite gegen die Regeln

Sicherheitsregeln für die Internetseite  

Das Team bestimmt die Regeln in einer Datei. Diese Datei heißt config/capability-policy.yaml. Hier steht, welche Fähigkeiten erlaubt sind. Hier steht auch, wie hoch das Risiko sein darf.

In den Regeln gibt es Listen mit erlaubten Funktionen. Es gibt auch Listen mit verbotenen Funktionen. Es gibt einen maximalen Risikowert. Erweiterungen dürfen diesen Wert nicht überschreiten. Verletzen Erweiterungen diese Regeln? Dann meldet das Werkzeug einen Verstoß gegen die Regeln.

Pläne für die Zukunft  

Das Projekt ist noch neu. Diese Funktionen planen wir für die Zukunft:

Eine Übersicht im TYPO3-Backend

Sie sehen alle Fähigkeitenlisten und Regeln direkt im TYPO3-Backend.

Schutz beim Installieren

Sie erhalten eine Warnung bei der Installation einer neuen Erweiterung.

Infos im Verzeichnis für Erweiterungen

Die Fähigkeiten stehen direkt beim Herunterladen im offiziellen TYPO3-Verzeichnis.

Installation  

Häufige Fragen  

Fazit  

Das Projekt ist noch in einem frühen Zustand. Aber es löst ein wichtiges Problem. Heute wissen wir oft nicht, was Erweiterungen tun. Diese Listen machen die Arbeit mit TYPO3 viel sicherer. Sie zeigen alle Risiken deutlich an. Sicherheitsprüfungen werden dadurch viel einfacher.

Ein ähnliches Modell funktioniert bereits gut bei WordPress. Darum ist diese Idee auch für TYPO3 sehr nützlich.

Danke

Die Idee kommt von dem Modell für WordPress. Wir danken der TYPO3-Gemeinschaft für die Hilfe. Das Projekt ist freie Software unter der Lizenz GPL.

Sprechen wir über Ihr Projekt.

Standorte

  • Mattersburg
    Johann Nepomuk Bergerstraße 7/2/14
    7210 Mattersburg, Austria
  • Wien
    Ungargasse 64-66/3/404
    1030 Wien, Austria

Ein Teil von diesem Inhalt wurde mit KI gemacht.