TYPO3 Security Hardening Guide – Best Practices für Produktion

Praxisorientierter Leitfaden zur Absicherung von TYPO3-Instanzen: Server-Konfiguration, Application Context, Extension-Management und Incident Response. Mit Konfigurationsbeispielen und offiziellen Quellen.

Die Sicherheit einer TYPO3-Installation ist das Ergebnis einer geteilten Verantwortung aller Beteiligten – Systemadministrator:innen, Integrator:innen, Entwickler:innen und Redakteur:innen. Dieser Leitfaden basiert auf dem offiziellen TYPO3 Security Guide und fasst alle relevanten Sicherheitsmaßnahmen zusammen.

Zuletzt aktualisiert: 3. Dezember 2025 – inkl. TYPO3 v14.0 (Sprint Release)

Inhaltsverzeichnis 


Schnell-Checkliste 

Sortiert nach Priorität – kritische Maßnahmen zuerst.

Kritisch – Sofort umsetzen 

Hoch – Authentifizierung & Zugriff 

Mittel – Infrastruktur 

Wartung & Recovery 


TYPO3 Security Team 

Das TYPO3 Security Team ist verantwortlich für die Koordination und Kommunikation von Sicherheitslücken im gesamten TYPO3-Ökosystem.

Aufgaben

  • Entgegennahme und Verifizierung von Sicherheitsmeldungen
  • Koordination mit Core- und Extension-Entwickler:innen
  • Veröffentlichung von Security Bulletins und Patches
  • Pflege der Security Advisories Datenbank

Schwachstellen melden

  • E-Mail: security@typo3.org (verschlüsselt möglich)
  • Niemals öffentlich: Keine GitHub-Issues, keine Forge-Tickets
  • Responsible Disclosure: Koordinierte Veröffentlichung nach Patch
  • Anerkennung: Credits in Security Bulletins
Wichtig: Keine öffentliche Diskussion

Sicherheitslücken dürfen niemals öffentlich diskutiert werden, bevor ein Patch verfügbar ist. Dies gibt Angreifern einen Vorteil und gefährdet alle TYPO3-Installationen weltweit.


Versionen & Updates 

Die Wahl der richtigen TYPO3-Version und eine konsequente Update-Strategie sind fundamentale Sicherheitsentscheidungen.

Support-Zyklen 

VersionTypRegulärer SupportELTS verfügbarPHP-Version
TYPO3 14Sprint → LTS (April 2026)Bis ~April 2029Ja (danach)PHP 8.2+
TYPO3 13LTSBis Oktober 2027Ja (danach)PHP 8.2+
TYPO3 12LTSBis April 2026Ja (danach)PHP 8.1+
TYPO3 11LTSBeendetJa (kostenpflichtig)PHP 7.4–8.2
Sprint ReleasesEntwicklungKein SupportNeinvariiert
TYPO3 v14 – Sprint Release verfügbar

TYPO3 v14.0 wurde am 25. November 2025 veröffentlicht. Die LTS-Version (v14.4) ist für April 2026 geplant. Bis dahin können sich Features und Einstellungen noch ändern. PHP 8.2+ ist erforderlich.

ELTS – Extended Long Term Support

Nach Ende des regulären Supports können kritische Sicherheitsupdates über das kostenpflichtige ELTS-Programm bezogen werden. Dies ist für Legacy-Systeme relevant, die nicht zeitnah migriert werden können.

Update-Kategorien 

Maintenance Releases

  • Fehlerbehebungen und kleinere Verbesserungen
  • Planbar im regulären Sprint-Rhythmus
  • Beispiel: 12.4.10 → 12.4.11

Security Releases

  • Beheben kritische Sicherheitslücken
  • Sofortige Installation erforderlich (24h-Ziel)
  • Dienstags veröffentlicht (koordiniert)
Security Releases: Zeitkritisch!

Da TYPO3 Open-Source ist, können Angreifer nach Veröffentlichung eines Patches die Code-Änderungen analysieren und Exploits entwickeln. Handeln Sie bei Security Releases innerhalb von 24 Stunden.


Bedrohungsarten 

Um TYPO3-Systeme effektiv zu schützen, müssen die gängigsten Angriffsvektoren verstanden werden.


Allgemeine Richtlinien 

Diese Grundprinzipien gelten für alle Rollen und bilden das Fundament jeder Sicherheitsstrategie.

Passwort-Hygiene 

Anforderungen

  • Mindestens 12 Zeichen (besser: 16+)
  • Groß-/Kleinbuchstaben, Zahlen, Sonderzeichen
  • Keine persönlichen Daten oder Wörterbuchwörter
  • Passwort-Manager verwenden

Organisatorisch

  • Für jeden Dienst ein einzigartiges Passwort
  • Kein "Angemeldet bleiben" auf gemeinsam genutzten Geräten
  • Passwörter niemals per E-Mail oder Chat teilen
  • Regelmäßige Rotation nach Sicherheitsrichtlinie

Informiert bleiben 

  • Security Bulletins: typo3.org/help/security-advisories
  • Newsletter: TYPO3 Security Announcements abonnieren
  • RSS Feed: Automatische Benachrichtigung über neue Advisories

Client-Sicherheit 

Alle Geräte, die auf das TYPO3-Backend zugreifen, müssen abgesichert sein:

  • Betriebssystem und Browser aktuell halten
  • Antivirus-Software und Firewall aktivieren
  • Keine Installation von Software aus unbekannten Quellen
  • VPN für Zugriff aus öffentlichen Netzwerken

Systemadministration 

Systemadministrator:innen verantworten die Server-Infrastruktur und damit die Basis aller Sicherheitsmaßnahmen.

HTTPS-Verschlüsselung 

Pflicht für alle Produktivsysteme

Ohne HTTPS können Anmeldedaten, Session-Cookies und sensible Inhalte abgefangen werden. Kein Produktivsystem darf ohne TLS betrieben werden.

  • TLS 1.2 als Minimum, TLS 1.3 bevorzugt
  • Let's Encrypt für kostenlose Zertifikate
  • HSTS-Header setzen (erzwingt HTTPS)
  • [BE][lockSSL] = true in TYPO3-Konfiguration

Dateiberechtigungen 

Korrekte Berechtigungen verhindern unbefugten Zugriff:

DateitypBerechtigungBegründung
Verzeichnisse755Lesen/Ausführen für alle, Schreiben nur Owner
PHP-Dateien644Kein Ausführen direkt, nur über Webserver
Konfigurationsdateien640Kein Zugriff für "others"
Upload-Verzeichnisse775Webserver muss schreiben können

HTTP-Zugriffsbeschränkung 

Blockieren Sie den Zugriff auf sensible Dateien und Verzeichnisse:

nginx
# Konfigurationsdateien blockieren
location ~* /.*\.(?:bak|conf|cfg|yaml|yml|ts|sql|sqlite)$ {
    deny all;
}

# Composer-Dateien blockieren
location ~* composer\.(?:json|lock) {
    deny all;
}

# Vendor und typo3_src blockieren
location ~ ^(?:vendor|typo3_src|typo3temp/var) {
    deny all;
}

# Private Extension-Verzeichnisse blockieren
location ~ /(?:Configuration|Resources/Private|Tests)/ {
    deny all;
}

Directory Indexing deaktivieren 

Automatische Verzeichnislistung muss deaktiviert sein, um Informationslecks zu verhindern:

Bash
Options -Indexes
nginx
autoindex off;

Security Headers 

HTTP-Security-Header sind eine wichtige Verteidigungsebene gegen verschiedene Angriffe. Sie werden vom Webserver gesendet und instruieren den Browser zu sicherem Verhalten.

Empfohlene Header 

HeaderWertSchutz gegen
Strict-Transport-Securitymax-age=31536000; includeSubDomainsDowngrade-Angriffe, SSL-Stripping
X-Frame-OptionsSAMEORIGINClickjacking
X-Content-Type-OptionsnosniffMIME-Type-Sniffing
Referrer-Policystrict-origin-when-cross-originInformationslecks
Permissions-Policygeolocation=(), microphone=()Ungewollte API-Nutzung
Content-Security-PolicyProjekt-spezifischXSS, Code-Injection

Konfiguration 

nginx
# Security Headers
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
add_header X-Frame-Options "SAMEORIGIN" always;
add_header X-Content-Type-Options "nosniff" always;
add_header Referrer-Policy "strict-origin-when-cross-origin" always;
add_header Permissions-Policy "geolocation=(), microphone=(), camera=()" always;

# Content-Security-Policy (anpassen!)
add_header Content-Security-Policy "default-src 'self'; script-src 'self' 'unsafe-inline'; style-src 'self' 'unsafe-inline'; img-src 'self' data: https:; font-src 'self'; frame-ancestors 'self';" always;
Content-Security-Policy testen!

CSP kann bei falscher Konfiguration die Website funktionsunfähig machen. Beginnen Sie mit Content-Security-Policy-Report-Only und prüfen Sie die Browser-Konsole auf Verstöße, bevor Sie den Header scharf schalten.

Überprüfung 

Testen Sie Ihre Security Headers mit diesen Tools:

Datenbank-Sicherheit 

Keine Web-Tools in Produktion

phpMyAdmin, Adminer und ähnliche Tools dürfen nicht auf Produktivsystemen installiert sein. Sie vergrößern die Angriffsfläche erheblich.

Backup-Strategie 

Die offizielle TYPO3-Dokumentation empfiehlt eine gestaffelte Backup-Strategie:

FrequenzComposer-Installation (v12+)Klassisch (Legacy)Aufbewahrung
TäglichDatenbank + fileadmin/Datenbank + fileadmin/7 Tage
WöchentlichDB + fileadmin/ + config/ + var/log/DB + fileadmin/ + typo3conf/ + uploads/4 Wochen
MonatlichVollständig (+ composer.lock)Vollständig (inkl. typo3/ Core)6 Monate
JährlichVollständiges ArchivVollständiges ArchivMehrere Jahre
Composer vs. Klassisch – Was sichern?

Composer-Installation (empfohlen):

  • config/ – Systemkonfiguration (settings.php, sites/)
  • fileadmin/ – Benutzer-Uploads (FAL)
  • var/log/ – Logs für Forensik (Cache ist regenerierbar)
  • composer.json + composer.lock – Code ist reproduzierbar!

Klassische Installation (Legacy):

  • typo3conf/ – Konfiguration + Extensions
  • fileadmin/ + uploads/ – Benutzer-Dateien
  • typo3/ – Core-Dateien
Kritische Sicherheitsregeln für Backups
  • Niemals im Document Root speichern – Backups dürfen nicht öffentlich erreichbar sein
  • Verschlüsselung – Backups enthalten sensible Daten (Passwort-Hashes, Kundendaten)
  • Offsite-Kopie – Mindestens eine Kopie extern speichern (Ransomware-Schutz)
Restore regelmäßig testen!

Ein Backup ist nur so gut wie der letzte erfolgreiche Restore-Test. Testen Sie die Wiederherstellung regelmäßig in einer separaten Umgebung und prüfen Sie auf fehlende Daten.


Integration & Konfiguration 

Integrator:innen konfigurieren TYPO3 und sind verantwortlich für sichere Systemeinstellungen.

Install Tool Absicherung 

Das Install Tool ermöglicht tiefgreifende Systemänderungen und erfordert besonderen Schutz:

  1. ENABLE_INSTALL_TOOL-Datei in var/transient/ (Composer) oder typo3temp/var/transient/ (klassisch)
  2. Separates Passwort (nicht das Admin-Passwort!)
  3. Auto-Löschung nach 60 Minuten Inaktivität
Verboten: KEEP_FILE

Der Inhalt KEEP_FILE in der Enable-Datei verhindert die automatische Löschung und ist in Produktionsumgebungen streng verboten.

Application Context (TYPO3_CONTEXT) 

Der Application Context ermöglicht unterschiedliche Konfigurationen für verschiedene Umgebungen. Dies ist kritisch für die Sicherheit, da Debugging-Optionen nur in Entwicklungsumgebungen aktiv sein sollten.

Empfohlene Kontexte 

ContextZweckDebuggingCaching
ProductionLive-SystemDeaktiviertAktiv
Production/StagingStaging-ServerDeaktiviertAktiv
DevelopmentEntwicklungAktiviertReduziert
Development/LocalLokale EntwicklungAktiviertMinimal
TestingAutomatisierte TestsAktiviertDeaktiviert

Konfiguration 

Bash
# .htaccess
SetEnv TYPO3_CONTEXT Production

Context-spezifische Konfiguration 

TYPO3 lädt automatisch zusätzliche Konfigurationsdateien basierend auf dem Context:

text
config/system/
├── settings.php              # Basis-Konfiguration
├── additional.php            # Zusätzliche Einstellungen
└── additional_Production.php # Nur in Production geladen
└── additional_Development.php # Nur in Development geladen
Niemals Production-Context vergessen!

Ohne gesetzten TYPO3_CONTEXT verwendet TYPO3 den Production-Context als Default. Stellen Sie dennoch sicher, dass die Variable explizit gesetzt ist, um Fehler zu vermeiden.

Offizielle Dokumentation: Application Context

Lokale Entwicklung mit DDEV 

DDEV ist die empfohlene Entwicklungsumgebung für TYPO3-Projekte. Die containerbasierte Lösung bietet erhebliche Sicherheitsvorteile gegenüber klassischen LAMP-Setups.

Sicherheitsvorteile

  • Isolierte Umgebung – Projekte laufen in separaten Containern
  • Automatische HTTPS – Lokale SSL-Zertifikate out-of-the-box
  • Konsistente Umgebung – Identische PHP-Version wie Production
  • Keine lokale Installation – Kein PHP/MySQL auf dem Host nötig

Entwickler-Produktivität

  • Schnelle Einrichtungddev config && ddev start
  • PHP-Version wechseln – Einfach in .ddev/config.yaml
  • Integrierte Services – Redis, Solr, MailHog, Elasticsearch
  • Composer & Node – Vollständig integriert
Bash
# Neues Projekt
mkdir my-typo3-project && cd my-typo3-project
ddev config --project-type=typo3 --php-version=8.2
ddev start
ddev composer create "typo3/cms-base-distribution:^12"
ddev launch
DDEV für Teams

Committen Sie .ddev/config.yaml ins Repository. So hat jedes Teammitglied automatisch die identische Entwicklungsumgebung – keine "Works on my machine"-Probleme.

Globale Konfiguration 

Alle sicherheitsrelevanten Einstellungen in config/system/settings.php bzw. config/system/additional.php:

PHP
<?php
// =====================================================
// BACKEND-SICHERHEIT (v12+)
// =====================================================

// HTTPS für Backend erzwingen (KRITISCH) - v12+
$GLOBALS['TYPO3_CONF_VARS']['BE']['lockSSL'] = true;

// Sicherheitswarnungen per E-Mail - v12+
$GLOBALS['TYPO3_CONF_VARS']['BE']['warning_email_addr'] = 'security@example.com';
$GLOBALS['TYPO3_CONF_VARS']['BE']['warning_mode'] = 2;

// Session-Sicherheit - v12+
$GLOBALS['TYPO3_CONF_VARS']['BE']['lockIP'] = 4;
$GLOBALS['TYPO3_CONF_VARS']['BE']['lockIPv6'] = 8;
$GLOBALS['TYPO3_CONF_VARS']['BE']['sessionTimeout'] = 3600;

// Cookie-Sicherheit - v12+
$GLOBALS['TYPO3_CONF_VARS']['BE']['cookieSameSite'] = 'strict';

// Passwort-Hashing - v12+ (Argon2id ist der sicherste Algorithmus)
$GLOBALS['TYPO3_CONF_VARS']['BE']['passwordHashing']['className'] = 
    \TYPO3\CMS\Core\Crypto\PasswordHashing\Argon2idPasswordHash::class;

// Passwort-Richtlinien - v12+ (konfigurierbare Passwort-Policies)
$GLOBALS['TYPO3_CONF_VARS']['BE']['passwordPolicy'] = 'default';

// =====================================================
// FRONTEND-SICHERHEIT (v12+)
// =====================================================

// Cache-Poisoning verhindern (KRITISCH) - v12+
$GLOBALS['TYPO3_CONF_VARS']['FE']['cacheHash']['enforceValidation'] = true;

// Frontend-Session-Sicherheit - v12+
$GLOBALS['TYPO3_CONF_VARS']['FE']['lockIP'] = 2;
$GLOBALS['TYPO3_CONF_VARS']['FE']['lockIPv6'] = 2;

// Frontend Passwort-Richtlinien - v12+
$GLOBALS['TYPO3_CONF_VARS']['FE']['passwordPolicy'] = 'default';

// =====================================================
// SYSTEM-SICHERHEIT (v12+)
// =====================================================

// Trusted Hosts Pattern (KRITISCH) - v12+
$GLOBALS['TYPO3_CONF_VARS']['SYS']['trustedHostsPattern'] = 
    'www\.example\.com|example\.com';

// Keine Fehler im Frontend anzeigen (KRITISCH) - v12+
$GLOBALS['TYPO3_CONF_VARS']['SYS']['displayErrors'] = 0;

// DevIP einschränken - v12+
$GLOBALS['TYPO3_CONF_VARS']['SYS']['devIPmask'] = '';

// Referrer-Prüfung für Backend-Formulare - v12+
$GLOBALS['TYPO3_CONF_VARS']['SYS']['features']['security.backend.enforceReferrer'] = true;

// =====================================================
// CONTENT SECURITY POLICY (v12.3+)
// =====================================================

// CSP für Frontend aktivieren - v12.3+
$GLOBALS['TYPO3_CONF_VARS']['SYS']['features']['security.frontend.enforceContentSecurityPolicy'] = true;

// CSP für Backend (standardmäßig aktiv) - v12.3+
$GLOBALS['TYPO3_CONF_VARS']['SYS']['features']['security.backend.enforceContentSecurityPolicy'] = true;

// =====================================================
// TYPO3 v13+ SPEZIFISCHE EINSTELLUNGEN
// =====================================================

// MFA für alle Admins erzwingen - v13+ (alternativ via UserTSconfig)
// $GLOBALS['TYPO3_CONF_VARS']['BE']['requireMfa'] = 1; // v13+

// Rate Limiting für Login-Versuche - v13+
$GLOBALS['TYPO3_CONF_VARS']['BE']['loginRateLimit'] = 5; // v13+
$GLOBALS['TYPO3_CONF_VARS']['BE']['loginRateLimitInterval'] = '15 minutes'; // v13+
$GLOBALS['TYPO3_CONF_VARS']['FE']['loginRateLimit'] = 5; // v13+
$GLOBALS['TYPO3_CONF_VARS']['FE']['loginRateLimitInterval'] = '15 minutes'; // v13+

// IP-Lockout nach zu vielen Fehlversuchen - v13+
$GLOBALS['TYPO3_CONF_VARS']['BE']['loginRateLimitIpExcludeList'] = ''; // v13+

// Subresource Integrity (SRI) für Assets - v13+
$GLOBALS['TYPO3_CONF_VARS']['SYS']['features']['security.frontend.allowSvgScriptExecution'] = false; // v13+

// =====================================================
// TYPO3 v14+ SPEZIFISCHE EINSTELLUNGEN (Sprint Release)
// Achtung: Kann sich bis zur LTS-Version ändern!
// =====================================================

// Install Tool Session in Redis speichern - v14+
$GLOBALS['TYPO3_CONF_VARS']['BE']['installToolSessionStorageBackend'] = 
    \TYPO3\CMS\Install\Service\Session\RedisSessionStorage::class; // v14+

// Redis-Authentifizierung mit Benutzername/Passwort - v14+
$GLOBALS['TYPO3_CONF_VARS']['SYS']['redis']['hostname'] = '127.0.0.1'; // v14+
$GLOBALS['TYPO3_CONF_VARS']['SYS']['redis']['port'] = 6379; // v14+
$GLOBALS['TYPO3_CONF_VARS']['SYS']['redis']['username'] = 'typo3'; // v14+ (Redis 6+)
$GLOBALS['TYPO3_CONF_VARS']['SYS']['redis']['password'] = 'secure-password'; // v14+
Kritische Einstellungen für Produktion

Diese drei Einstellungen müssen in jeder Produktionsumgebung korrekt gesetzt sein:

  • trustedHostsPattern – Regex für erlaubte Domains (nicht .*!)
  • displayErrors = 0 – Keine Fehlerausgabe
  • devIPmask = '' – Keine Debug-IPs

Benutzer & Rechte 

Prinzip der geringsten Rechte (PoLP) 

Jede:r Benutzer:in erhält nur die minimal notwendigen Berechtigungen:

  • Redakteur:innen: Nur Zugriff auf relevante Seitenbäume und Dateibereiche
  • Administrator:innen: Kein System Maintainer-Status, wenn nicht benötigt
  • System Maintainers: Auf absolute Minimum beschränken (1-2 Personen)

Multi-Faktor-Authentifizierung (MFA) 

Obligatorisch für Admin-Konten

MFA muss für alle Konten mit administrativen Rechten verpflichtend aktiviert werden. TYPO3 unterstützt TOTP und Recovery Codes nativ.

Extension-Management 

  • Nur Extensions aus vertrauenswürdigen Quellen (TER, Packagist)
  • Regelmäßige Updates aller Extensions
  • Ungenutzte Extensions entfernen – jede Extension erweitert die Angriffsfläche
  • Security Bulletins auch für Extensions beachten
Wichtig: Security Bulletins nur für TER-Extensions

Das TYPO3 Security Team arbeitet reaktiv, nicht proaktiv:

  • Keine automatische Prüfung – Nur ein kleiner Prozentsatz der TER-Extensions wurde vom Security Team geprüft (Quelle)
  • Nur bei Meldung – Das Team wird erst aktiv, wenn jemand eine Schwachstelle an security@typo3.org meldet
  • Nur TER-Extensions – Security Bulletins werden ausschließlich für Extensions im TER veröffentlicht (Quelle)
Konsequenz für Nicht-TER-Extensions

Extensions aus privaten Repos, GitHub oder nicht-TER Packagist-Paketen erhalten niemals Security Bulletins vom TYPO3 Security Team. (Quelle)

Das bedeutet: Ihr Entwicklungsteam trägt die volle Verantwortung für Security-Audits, Vulnerability-Monitoring und Patch-Management dieser Extensions.

Der Prozess nach einer Meldung 

Wenn eine Sicherheitslücke in einer TER-Extension gemeldet wird, folgt das Security Team der Extension Security Policy:

  1. Benachrichtigung – Security Team informiert den Extension-Entwickler vertraulich
  2. Reaktion erforderlich – Entwickler muss zeigen, dass die Extension aktiv gepflegt wird
  3. Fix bereitstellen – Patch wird entwickelt und in einem privaten Repository getestet
  4. Koordinierte Veröffentlichung – Security Bulletin + neue Extension-Version gleichzeitig

Bei Nicht-Reaktion: Das Security Team veröffentlicht ein Removal Bulletin und die Extension wird aus dem TER entfernt. (Quelle)

Sicherheitswarnungen nach Login 

TYPO3 zeigt nach dem Backend-Login Sicherheitswarnungen an. Diese ernst nehmen und zeitnah beheben:

  • Veraltete Core-Version
  • Unsichere Extensions
  • Fehlende Konfiguration

Extension-Entwicklung 

Entwickler:innen tragen besondere Verantwortung, da unsicherer Code die gesamte Installation gefährdet.

Goldene Regel

"Never trust user input" – Alle Daten von außen (GET, POST, Cookies, Header) sind potenziell bösartig und müssen validiert werden.

Input-Validierung 

Validieren Sie alle Eingaben serverseitig:

  • Typ-Prüfung: Integer, String, Boolean
  • Längen-Limits: Maximale Zeichenanzahl
  • Whitelist: Nur erlaubte Werte akzeptieren
  • Encoding: UTF-8 erzwingen

SQL-Injection verhindern 

PHP
// NIEMALS String-Konkatenation mit Benutzereingaben!
$query = "SELECT * FROM users WHERE email = '" . $userInput . "'";

XSS verhindern 

Fluid escaped Ausgaben standardmäßig. Ausnahmen beachten:

KontextSchutz
Fluid-Variablen in HTMLAutomatisch escaped
<f:format.raw>Kein Escaping – niemals für Benutzerdaten!
ViewHelper-ArgumenteNicht escaped – manuell escapen!
JavaScript-KontextJSON.stringify() oder htmlspecialchars()

Extbase-Sicherheit 

  • Property Mapping: Nur explizit erlaubte Properties akzeptieren
  • __trustedProperties: Verhindert Mass Assignment durch kryptografische Validierung
  • Validierung: Extbase Validators für Domain-Objekte nutzen

Redakteur-Sicherheit 

Auch Redakteur:innen können durch unsicheres Verhalten Sicherheitslücken öffnen.

Sichere Content-Eingabe 

  • Rich-Text-Editor verwenden statt direktem HTML
  • Keine unbekannten Embeds (YouTube, Twitter etc.) von unsicheren Quellen
  • Links prüfen vor dem Setzen – keine Redirects zu unbekannten Domains
  • Keine Skripte in RTE einfügen (werden oft geblockt, aber nicht immer)

Upload-Richtlinien 

Erlaubt

  • Bilder: jpg, png, gif, svg, webp
  • Dokumente: pdf, docx, xlsx, pptx
  • Archive: zip (nach Prüfung)

Verboten

  • Ausführbare: php, exe, sh, bat
  • Web-Dateien: html, htm, js
  • Server-Dateien: htaccess, conf
  • Dateinamen prüfen: Keine Sonderzeichen, die Injection ermöglichen
  • Dateigröße beachten: Verdächtig große Dateien melden
  • Herkunft verifizieren: Keine Dateien aus unbekannten Quellen hochladen

Phishing-Awareness 

  • Niemals Zugangsdaten per E-Mail teilen
  • URL prüfen vor Eingabe von Passwörtern
  • Verdächtige E-Mails an IT melden
  • Bei Unsicherheit: Nachfragen statt Klicken

Nach einem Angriff 

Trotz aller Vorsichtsmaßnahmen kann eine Kompromittierung nie vollständig ausgeschlossen werden. Ein klarer Notfallplan ist essentiell.

Anzeichen erkennen 

Offensichtlich

  • Website zeigt fremde Inhalte (Defacement)
  • Weiterleitungen zu unbekannten Domains
  • Suchmaschinen-Warnungen ("Diese Website könnte gehackt sein")
  • Unbekannte Backend-Benutzer

Subtil

  • Ungewöhnlich hoher Traffic/Serverlast
  • Spam-E-Mails vom Server
  • Neue Dateien in Upload-Verzeichnissen
  • Geänderte Zeitstempel bei Core-Dateien

Sofortmaßnahmen 

Website offline nehmen

Sofort den Zugriff sperren (Maintenance-Seite oder IP-Block). Dies stoppt weiteren Schaden und schützt Besucher:innen.

Beweissicherung

Aktuellen Zustand sichern: Dateisystem, Datenbank, Logs. Diese werden für die forensische Analyse benötigt.

Zugangsdaten ändern

Alle Passwörter sofort ändern: TYPO3-Backend, Datenbank, FTP/SSH, Hosting-Panel, E-Mail.

Analyse durchführen 

Wiederherstellung 

Keine manuelle Säuberung!

Ein kompromittiertes System manuell zu "säubern" ist extrem fehleranfällig. Backdoors werden oft übersehen und ermöglichen erneuten Zugriff.

Empfohlenes Vorgehen:

  1. Sauberes Backup identifizieren (vor dem Angriff erstellt)
  2. Frische Installation auf bereinigtem Server
  3. Datenbank aus Backup wiederherstellen
  4. TYPO3 und Extensions auf neueste Versionen aktualisieren
  5. Sicherheitslücke schließen, die den Angriff ermöglichte
  6. Alle Passwörter erneuern
  7. Erst dann online gehen

Präventive Maßnahmen nach Wiederherstellung 

  • Schwachstelle dokumentieren und beheben
  • Sicherheitsaudit durchführen
  • Monitoring intensivieren
  • Team schulen
  • Incident-Response-Plan aktualisieren

Composer & Code-Integrität 

Einzig empfohlener Installationsweg

Die Composer-Installation ist der einzige empfohlene Weg für produktive TYPO3-Systeme. Der klassische Modus sollte nur für Testzwecke verwendet werden.

Sicherheitsvorteile 

AspektComposerKlassisch
PaketverifizierungChecksums geprüftManuell (wenn überhaupt)
Update-SicherheitAtomare UpdatesCode-Leichen möglich
Dependency Auditcomposer auditNicht verfügbar
Reproduzierbarkeitcomposer.lockNicht gegeben
Document RootSepariertAlles öffentlich

Sichere Update-Strategie 

Bash
# 1. Backup erstellen
mysqldump -u user -p database > backup.sql

# 2. Dependencies aktualisieren
composer update typo3/cms-* --with-dependencies

# 3. Security Audit durchführen
composer audit

# 4. Datenbank-Schema aktualisieren
vendor/bin/typo3 database:updateschema

# 5. Cache leeren
vendor/bin/typo3 cache:flush

Zusammenfassung 

Composer nutzen

Persönliche Empfehlung: Installationsweg für verifizierte Pakete und sichere Updates

Sofort updaten

Security Releases innerhalb von 24 Stunden einspielen

Defense in Depth

Mehrere Sicherheitsebenen: Server, Anwendung, Benutzer, Prozesse


Ressourcen 

Kontaktieren Sie uns für ein unverbindliches Gespräch.

E-Mail: office@webconsulting.at

Lassen Sie uns über Ihr Projekt sprechen

Standorte

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

Dieser Inhalt wurde teilweise mithilfe von KI erstellt.