Die Sicherheit von TYPO3 ist eine gemeinsame Aufgabe. Alle Personen müssen mithelfen. Das sind System-Admins, Entwickler und Redakteure. Dieser Text nutzt den offiziellen TYPO3 Security Guide . Der Text fasst alle wichtigen Regeln zusammen.
Inhaltsverzeichnis
Security Team
Aufgaben, Fehler melden
Bedrohungen
SQLi, XSS, CSRF, RCE
Schnell-Checkliste
Wir sortieren die Liste nach Wichtigkeit. Die wichtigsten Regeln kommen zuerst.
Sehr wichtig – Bitte sofort machen
.* auf fertigen Internet-Seiten.Fehler-Anzeige ausschalten. Setzen Sie displayErrors = 0. Setzen Sie devIPmask = ''.Aktuelle LTS-Version nutzen. Nutzen Sie TYPO3 12 oder 13 LTS. Installieren Sie die neuesten Updates.Erweiterungen aktuell halten. Aktualisieren Sie alle Erweiterungen. Löschen Sie ungenutzte Erweiterungen aus dem System.Wichtig – Anmeldung und Zugriff
loginRateLimit ein. Das bremst zu viele Login-Versuche.Wenig Rechte vergeben. Geben Sie Benutzern nur die nötigen Rechte (PoLP-Prinzip).Mittel – Server und Struktur
composer audit.Wichtige Dateien blockieren. Blockieren Sie den Zugriff auf .sql, .yaml und composer-Dateien.Security Headers setzen. Richten Sie HSTS, X-Frame-Options und CSP im Server ein.Pflege und Hilfe im Notfall
TYPO3 Security Team
Das TYPO3 Security Team kümmert sich um Sicherheits-Lücken. Das Team informiert alle Nutzer von TYPO3.
Aufgaben
- Sicherheits-Meldungen annehmen und prüfen
- Mit Entwicklern zusammenarbeiten
- Warnungen und Updates veröffentlichen
- Die Datenbank für Warnungen pflegen
Fehler melden
- E-Mail: security@typo3.org (Verschlüsselung ist möglich)
- Niemals öffentlich: Nutzen Sie keine GitHub-Issues. Nutzen Sie keine Forge-Tickets.
- Geheime Meldung: Warten Sie gemeinsam auf das Update.
- Anerkennung: Ihr Name steht später in der Warnung.
Sicherheits-Lücken dürfen Sie niemals öffentlich besprechen. Warten Sie immer auf ein offizielles Update. Sonst helfen Sie den Angreifern. Das gefährdet alle TYPO3-Seiten auf der Welt.
Versionen & Updates
Sie müssen eine sichere TYPO3-Version wählen. Und Sie müssen regelmäßig Updates machen. Das ist sehr wichtig für die Sicherheit.
Dauer vom Support
| Version | Typ | Normaler Support | ELTS verfügbar | PHP-Version |
|---|---|---|---|---|
| TYPO3 14 | Sprint → LTS (April 2026) | Bis ungefähr April 2029 | Ja (später) | PHP 8.2+ |
| TYPO3 13 | LTS | Bis Oktober 2027 | Ja (später) | PHP 8.2+ |
| TYPO3 12 | LTS | Bis April 2026 | Ja (später) | PHP 8.1+ |
| TYPO3 11 | LTS | Beendet | Ja (kostet Geld) | PHP 7.4–8.2 |
| Sprint Releases | Entwicklung | Kein Support | Nein | unterschiedlich |
TYPO3 v14.0 ist seit dem 25. November 2025 verfügbar. Die LTS-Version (v14.4) kommt im April 2026. Bis dahin können sich Einstellungen noch ändern. Sie brauchen PHP 8.2 oder neuer.
Der normale Support endet irgendwann. Dann können Sie das ELTS-Programm kaufen. So bekommen Sie weiter wichtige Updates. Das ist sehr gut für alte Systeme.
Arten von Updates
Maintenance Releases
- Repariert kleine Fehler im System.
- Macht kleine Verbesserungen.
- Sie können diese Updates gut planen.
- Beispiel: Version 12.4.10 → 12.4.11
Security Releases
- Schließt sehr gefährliche Lücken.
- Sie müssen diese sofort installieren.
- Das Ziel ist innerhalb von 24 Stunden.
- Sie erscheinen immer an einem Dienstag.
TYPO3 ist Open-Source. Der Code ist für alle offen. Angreifer lesen den Code von neuen Updates. Sie bauen daraus schnell neue Angriffe. Installieren Sie Security Releases innerhalb von 24 Stunden.
Bedrohungen
Sie müssen die häufigsten Angriffe kennen. Nur so können Sie TYPO3 gut schützen.
Allgemeine Richtlinien
Diese Regeln gelten für alle Menschen im Projekt. Sie sind die Basis für die Sicherheit.
Passwort-Hygiene
Anforderungen
- Mindestens 12 Zeichen. Besser sind 16 Zeichen.
- Nutzen Sie große und kleine Buchstaben.
- Nutzen Sie Zahlen und Sonderzeichen.
- Nutzen Sie keine eigenen Daten.
- Nutzen Sie einen Passwort-Manager.
Organisatorisch
- Nutzen Sie für jeden Dienst ein eigenes Passwort.
- Klicken Sie niemals auf "Angemeldet bleiben" an fremden Geräten.
- Teilen Sie Passwörter niemals per E-Mail.
- Teilen Sie Passwörter niemals im Chat.
- Ändern Sie Passwörter regelmäßig.
Informiert bleiben
- Security Bulletins lesen: typo3.org/security
- Newsletter abonnieren: TYPO3 Security Announcements
- RSS Feed nutzen: Automatische Benachrichtigung bei neuen Warnungen
Geräte-Sicherheit
Alle Geräte für das TYPO3-Backend müssen sicher sein.
- Halten Sie Betriebssystem und Browser aktuell.
- Schalten Sie Antivirus und Firewall ein.
- Installieren Sie keine unbekannten Programme auf dem Gerät.
- Nutzen Sie ein VPN in fremden Netzwerken.
Systemadministration
System-Admins kümmern sich um den Server. Das ist die Basis für alle Sicherheits-Maßnahmen.
HTTPS-Verschlüsselung
Ohne HTTPS kann jeder Ihre Passwörter lesen. Jede Internet-Seite braucht HTTPS (TLS).
- Nutzen Sie mindestens TLS 1.2. TLS 1.3 ist besser.
- Let's Encrypt gibt Ihnen kostenlose Zertifikate.
- Setzen Sie den HSTS-Header. Er erzwingt HTTPS.
- Setzen Sie
[BE][lockSSL] = truein der TYPO3-Konfiguration.
Datei-Rechte
Richtige Rechte verhindern verbotene Zugriffe.
| Datei-Typ | Rechte | Erklärung |
|---|---|---|
| Ordner | 755 | Jeder darf lesen. Nur der Besitzer darf schreiben. |
| PHP-Dateien | 644 | Nicht direkt ausführbar. Nur über den Webserver. |
| Konfigurations-Dateien | 640 | Andere Benutzer haben keinen Zugriff. |
| Upload-Ordner | 775 | Der Webserver muss Dateien schreiben können. |
HTTP-Zugriffsbeschränkung
Sperren Sie den Zugriff auf wichtige Dateien.
Ordner-Inhalte verstecken
Schalten Sie die automatische Datei-Anzeige aus. Das verhindert das Lesen von geheimen Daten.
Security Headers
HTTP-Security-Header schützen vor vielen Angriffen. Der Server sendet diese Header an den Browser. Der Browser weiß dann genau, was sicher ist.
Wichtige Header
| Header | Wert | Schutz gegen |
|---|---|---|
Strict-Transport-Security | max-age=31536000; includeSubDomains | Angriffe auf die Verschlüsselung |
X-Frame-Options | SAMEORIGIN | Clickjacking |
X-Content-Type-Options | nosniff | Falsche Datei-Typen |
Referrer-Policy | strict-origin-when-cross-origin | Verraten von Informationen |
Permissions-Policy | geolocation=(), microphone=() | Unerlaubte Kamera oder Mikrofon |
Content-Security-Policy | Muss man für jedes Projekt anpassen | XSS und Code-Injection |
Einstellungen
Eine falsche Content-Security-Policy kann die Website kaputt machen. Starten Sie immer mit Content-Security-Policy-Report-Only. Prüfen Sie die Fehler im Browser. Schalten Sie den Header erst danach scharf.
Kontrolle
Testen Sie Ihre Header mit diesen Werkzeugen:
- securityheaders.com – Schneller Test im Internet.
- Mozilla Observatory – Sehr genauer Test.
- Entwickler-Werkzeuge im Browser (DevTools) → Netzwerk → Response Headers.
Datenbank-Sicherheit
Installieren Sie phpMyAdmin oder Adminer nicht auf Live-Servern. Sie sind ein sehr großes Risiko.
Backups
Die offizielle TYPO3-Anleitung empfiehlt viele verschiedene Backups:
| Zeitraum | Installation mit Composer (v12+) | Alte Installation (Legacy) | Aufbewahren |
|---|---|---|---|
| Jeden Tag | Datenbank + fileadmin/ | Datenbank + fileadmin/ | 7 Tage |
| Jede Woche | DB + fileadmin/ + config/ + var/log/ | DB + fileadmin/ + typo3conf/ + uploads/ | 4 Wochen |
| Jeden Monat | Alles (mit composer.lock) | Alles (mit dem typo3/ Core) | 6 Monate |
| Jedes Jahr | Ein komplettes Archiv | Ein komplettes Archiv | Viele Jahre |
Installation mit Composer (unsere Empfehlung):
config/– Einstellungen vom System.fileadmin/– Dateien von Benutzern.var/log/– Logs für die Fehler-Suche.composer.jsonundcomposer.lock– So können Sie den Code genau wiederherstellen.
Alte Installation (Legacy):
typo3conf/– Einstellungen und Erweiterungen.fileadmin/unduploads/– Dateien von Benutzern.typo3/– Wichtige Core-Dateien.
- Niemals im normalen Ordner speichern. Backups dürfen nicht öffentlich sein.
- Verschlüsselung nutzen. Backups enthalten Passwörter und Kunden-Daten.
- Externe Kopie. Speichern Sie eine Kopie woanders. Das schützt vor Erpressungs-Trojanern (Ransomware).
Ein Backup ist nur so gut wie der letzte Test. Testen Sie die Wiederherstellung regelmäßig in einer sicheren Umgebung. Prüfen Sie auf fehlende Daten.
Integration & Konfiguration
Integratoren stellen TYPO3 ein. Sie sorgen für sichere Einstellungen im System.
Install Tool schützen
Das Install Tool erlaubt tiefe Änderungen im System. Es braucht besonderen Schutz:
- Legen Sie die Datei ENABLE_INSTALL_TOOL an. Legen Sie diese in
var/transient/ab (bei Composer). - Nutzen Sie ein eigenes Passwort. Nutzen Sie nicht das Admin-Passwort.
- Das Tool schließt sich nach 60 Minuten selbst. Die Datei wird gelöscht.
Schreiben Sie niemals KEEP_FILE in die Datei. Das verhindert die automatische Löschung. Das ist auf Live-Servern streng verboten.
Application Context (TYPO3_CONTEXT)
Der Application Context ändert Einstellungen für verschiedene Server. Das ist sehr wichtig für die Sicherheit. Die Fehler-Suche (Debugging) darf nur in der Entwicklung an sein.
Empfohlene Server
| Context | Zweck | Fehler-Suche | Zwischen-Speicher |
|---|---|---|---|
Production | Live-System | Ausgeschaltet | Eingeschaltet |
Production/Staging | Test-Server (Staging) | Ausgeschaltet | Eingeschaltet |
Development | Entwicklung | Eingeschaltet | Wenig |
Development/Local | Entwicklung am eigenen PC | Eingeschaltet | Minimal |
Testing | Automatische Tests | Eingeschaltet | Ausgeschaltet |
Einstellungen
Einstellungen für verschiedene Server
TYPO3 lädt automatisch zusätzliche Dateien für verschiedene Context-Werte:
Wenn Sie keinen Context setzen, nimmt TYPO3 Production. Setzen Sie ihn trotzdem immer von Hand. Das verhindert böse Fehler.
Offizielle Anleitung: Application Context
Lokale Entwicklung mit DDEV
DDEV ist die beste Umgebung für die Entwicklung. Es nutzt sichere Container. Das ist viel sicherer als klassische Server.
Sicherheit
- Sichere Umgebung. Die Projekte laufen getrennt in Containern.
- Automatisch HTTPS. Das Zertifikat funktioniert sofort.
- Gleiches System. Sie haben die gleiche PHP-Version wie auf dem Live-Server.
- Keine Programme am PC. Sie brauchen kein lokales PHP oder MySQL.
Gute Arbeit
- Schneller Start. Einfach
ddev configundddev starttippen. - PHP wechseln. Einfach in der
.ddev/config.yamlumstellen. - Viele Dienste. Redis, Solr und MailHog sind schon dabei.
- Composer und Node. Alles ist fertig eingebaut.
Speichern Sie .ddev/config.yaml in Git. Dann hat jeder im Team sofort die gleiche Umgebung. Es gibt keine komischen Fehler mehr.
Einstellungen für das ganze System
Hier sind alle wichtigen Einstellungen für die Sicherheit. Sie stehen in config/system/settings.php.
Diese drei Einstellungen sind sehr wichtig für Live-Server:
trustedHostsPattern– Erlaubte Domains (niemals.*eintragen!)displayErrors = 0– Keine Fehler im Internet anzeigen.devIPmask = ''– Keine Debug-IPs eintragen.
Benutzer und Rechte
Wenig Rechte vergeben (PoLP-Prinzip)
Jeder Benutzer bekommt nur die nötigsten Rechte.
- Redakteure: Sehen nur ihre eigenen Seiten und Dateien.
- Administratoren: Sie sind keine System Maintainer.
- System Maintainer: Haben alle Rechte. Es sollte nur 1 bis 2 System Maintainer geben.
Multi-Faktor-Authentifizierung (MFA)
MFA ist eine doppelte Anmeldung. Sie ist für alle Admin-Konten Pflicht. Schalten Sie MFA sofort ein.
Erweiterungen verwalten (Extensions)
- Nutzen Sie nur sichere Quellen (TER, Packagist).
- Machen Sie regelmäßig Updates für alle Erweiterungen.
- Löschen Sie ungenutzte Erweiterungen. Jede Erweiterung ist ein Risiko.
- Lesen Sie auch Warnungen für Erweiterungen.
Das TYPO3 Security Team prüft nicht automatisch. Das Team wartet auf Meldungen.
- Keine automatische Prüfung. Das Team prüft Erweiterungen nicht von selbst.
- Warten auf Meldungen. Jemand muss einen Fehler an security@typo3.org melden.
- Nur für TER-Erweiterungen. Warnungen gibt es nur für das offizielle TER.
Erweiterungen aus anderen Quellen bekommen niemals Warnungen vom Security Team. GitHub oder private Ordner sind andere Quellen.
Das bedeutet: Ihr Team ist für diese Erweiterungen ganz allein verantwortlich. Sie müssen selbst Fehler suchen und beheben.
Der Ablauf bei einem Fehler
Wenn jemand einen Fehler im TER meldet, gibt es feste Regeln:
- Geheime Nachricht. Das Team informiert den Entwickler heimlich.
- Der Entwickler muss antworten. Er muss zeigen, dass er noch arbeitet.
- Reparatur bauen. Der Entwickler baut heimlich ein Update (Patch).
- Gemeinsame Veröffentlichung. Warnung und Update kommen gleichzeitig heraus.
Wenn der Entwickler nicht antwortet: Das Team löscht die Erweiterung aus dem TER. Das Team warnt alle Nutzer.
Warnungen nach dem Login
TYPO3 zeigt oft Warnungen nach dem Login an. Nehmen Sie diese ernst. Reparieren Sie die Fehler sofort.
- Der Core ist zu alt.
- Es gibt unsichere Erweiterungen.
- Wichtige Einstellungen fehlen.
Extension-Entwicklung
Entwickler haben eine große Verantwortung. Ein schlechter Code gefährdet das ganze System.
Trauen Sie niemals fremden Eingaben. Alle Daten von außen sind gefährlich. Sie müssen alle Daten gut prüfen.
Eingaben prüfen
Prüfen Sie alle Eingaben auf dem Server:
- Typ prüfen: Ist es eine Zahl oder ein Text?
- Länge prüfen: Wie lang darf der Text sein?
- Erlaubte Werte: Erlauben Sie nur gute Werte (Whitelist).
- Zeichen-Satz: Erzwingen Sie UTF-8.
SQL-Injection verhindern
XSS verhindern
Fluid prüft Ausgaben ganz automatisch. Achten Sie auf Ausnahmen:
| Stelle im Code | Schutz |
|---|---|
| Fluid-Variablen in HTML | Werden automatisch geprüft |
<f:format.raw> | Wird nicht geprüft. Niemals für Benutzer-Daten nutzen! |
| ViewHelper-Argumente | Werden nicht geprüft. Sie müssen selbst prüfen! |
| JavaScript-Code | Nutzen Sie JSON.stringify() oder htmlspecialchars() |
Extbase-Sicherheit
- Erlaubte Properties: Erlauben Sie nur bestimmte Properties.
- __trustedProperties: Extbase prüft dies automatisch. Es ist sehr sicher.
- Validatoren: Nutzen Sie Extbase Validatoren für alle Objekte.
Redakteur-Sicherheit
Auch Redakteure müssen sehr vorsichtig sein. Ein Fehler kann das ganze System öffnen.
Sichere Inhalte eingeben
- Nutzen Sie den normalen Text-Editor (RTE). Schreiben Sie kein eigenes HTML.
- Nutzen Sie keine fremden Einbettungen (Embeds).
- Prüfen Sie alle Links vor dem Speichern.
- Fügen Sie niemals Skripte in Texte ein.
Dateien richtig hochladen
Erlaubt
- Bilder: jpg, png, gif, svg, webp
- Dokumente: pdf, docx, xlsx, pptx
- Archive: zip (nach guter Prüfung)
Verboten
- Ausführbare Dateien: php, exe, sh, bat
- Web-Dateien: html, htm, js
- Server-Dateien: htaccess, conf
- Datei-Namen prüfen: Nutzen Sie keine Sonderzeichen.
- Datei-Größe beachten: Melden Sie sehr große Dateien der IT.
- Herkunft prüfen: Laden Sie keine fremden Dateien hoch.
Phishing erkennen
- Senden Sie niemals Passwörter per E-Mail.
- Prüfen Sie die Adresse (URL), bevor Sie ein Passwort tippen.
- Melden Sie komische E-Mails sofort an die IT.
- Fragen Sie lieber nach, bevor Sie auf einen Link klicken.
Nach einem Angriff
Ein Angriff kann immer passieren. Sie brauchen einen guten Plan für den Notfall.
Warnzeichen erkennen
Klar sichtbar
- Fremde Inhalte auf der Website.
- Weiterleitungen auf fremde Seiten.
- Warnungen von Google oder anderen Suchmaschinen.
- Unbekannte Admin-Benutzer im System.
Schwer sichtbar
- Sehr viele Besucher auf einmal.
- Der Server verschickt Spam-E-Mails.
- Neue Dateien in fremden Ordnern.
- Geänderte Zeiten bei wichtigen Dateien.
Sofort-Hilfe
Website sofort offline nehmen
Beweise sichern
Alle Passwörter ändern
Fehler suchen
Wiederherstellung
Das Säubern von Hand ist sehr fehleranfällig. Oft bleiben versteckte Hintertüren im System. Die Angreifer kommen dann schnell zurück.
So machen Sie es richtig:
- Suchen Sie ein sauberes Backup von vor dem Angriff.
- Installieren Sie TYPO3 neu auf einem sauberen Server.
- Spielen Sie die Datenbank aus dem Backup ein.
- Machen Sie alle Updates für TYPO3 und Erweiterungen.
- Schließen Sie die Sicherheits-Lücke vom Angriff.
- Ändern Sie alle Passwörter.
- Gehen Sie erst dann wieder online.
Besserer Schutz für die Zukunft
- Schreiben Sie die Lösung auf.
- Prüfen Sie das ganze System genau.
- Überwachen Sie den Server noch besser.
- Schulen Sie Ihr Team für mehr Sicherheit.
- Verbessern Sie Ihren Notfall-Plan.
Composer & Code-Integrität
Die Installation mit Composer ist der einzige empfohlene Weg. Das alte System (Legacy) ist nur für Tests gut.
Vorteile für die Sicherheit
| Vorteil | Composer | Klassisch (Legacy) |
|---|---|---|
| Pakete prüfen | Checksums werden geprüft | Keine automatische Prüfung |
| Updates | Sichere Updates | Code-Leichen sind möglich |
| Fehler suchen | Fehler prüfen mit composer audit | Geht nicht |
| Gleicher Code | composer.lock speichert den Zustand | Geht nicht |
| Ordner-Schutz | Wichtige Dateien sind getrennt | Alles ist öffentlich |
Sichere Updates machen
Zusammenfassung
Composer nutzen
Das ist unsere Empfehlung für sichere Installationen. Sie bekommen immer verifizierte Pakete.
Sofort updaten
Installieren Sie Security Releases immer innerhalb von 24 Stunden.
Mehrere Schutz-Ebenen
Schützen Sie Server, Programm, Benutzer und Prozesse gleichzeitig.
Ressourcen
- TYPO3 Security Guide – Die offizielle Anleitung
- TYPO3 Security Team – Fehler an das Team melden
- Security Advisories – Alle aktuellen Warnungen lesen
- ELTS-Programm – Langer Support für alte Versionen