WordPress betreibt uber 40% aller Websites weltweit, was es zum bevorzugten Ziel automatisierter Angriffe macht. Die gute Nachricht: Die meisten erfolgreichen WordPress-Hacks nutzen bekannte, leicht vermeidbare Schwachstellen aus. Diese Checkliste fuhrt dich durch jede Sicherheitsebene, von der Transportverschlusselung bis zur Server-Hartung. Arbeite sie systematisch durch, und deine Seite wird deutlich schwerer angreifbar sein als die grosse Mehrheit der WordPress-Installationen.
WordPress-Absicherung mit SSL und HTTPS
HTTPS verschlusselt alle Daten zwischen dem Browser deiner Besucher und deinem Server. Ohne SSL werden Anmeldedaten, Formulareinreichungen und Session-Cookies im Klartext ubertragen, was sie in offentlichen Netzwerken trivial abfangbar macht.
- Gultiges SSL-Zertifikat installieren: Die meisten Hosting-Anbieter bieten kostenlose Let's-Encrypt-Zertifikate an, die sich alle 90 Tage automatisch erneuern. Falls dein Hoster kein Let's Encrypt unterstutzt, bietet Cloudflare im kostenlosen Tarif ein gemeinsames SSL-Zertifikat. Es gibt keinen Grund mehr, ohne HTTPS zu arbeiten.
- Gesamten HTTP-Traffic per 301-Redirect auf HTTPS umleiten: Richte eine permanente Weiterleitung ein, damit jede Anfrage an
http://automatisch aufhttps://umgeleitet wird. Fur Apache fugt man dies in die.htaccessein:
Fur Nginx einen Server-Block, der weiterleitet:RewriteEngine On RewriteCond %{HTTPS} off RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]server { listen 80; server_name example.com www.example.com; return 301 https://$host$request_uri; } - Alle Mixed-Content-Warnungen beheben: Nach der Umstellung auf HTTPS prufe, ob noch Bilder, Skripte oder Stylesheets uber HTTP geladen werden. Die Browser-Konsole markiert diese als "Mixed Content"-Warnungen. Aktualisiere fest codierte
http://-URLs in deiner Datenbank mit einem Werkzeug wie Better Search Replace. - HSTS-Header aktivieren: HTTP Strict Transport Security weist den Browser an, deine Domain immer uber HTTPS aufzurufen, selbst wenn der Nutzer manuell
http://eingibt. Setze den Header mit einem max-age von mindestens sechs Monaten (15768000 Sekunden). AktiviereincludeSubDomainsnur, wenn alle deine Subdomains ebenfalls HTTPS unterstutzen.
HTTP-Sicherheitsheader fur WordPress konfigurieren
Sicherheitsheader sind Anweisungen, die dein Server an den Browser sendet. Sie kosten keine Performance, bieten aber erheblichen Schutz gegen gangige Angriffsarten wie Clickjacking, MIME-Type-Verwechslung und Cross-Site-Scripting.
- X-Frame-Options: SAMEORIGIN: Verhindert, dass deine Seiten in iframes auf fremden Domains eingebettet werden. Das blockiert Clickjacking-Angriffe, bei denen ein Angreifer unsichtbare Elemente uber deine Seite legt, um Nutzer zu tauschen.
- X-Content-Type-Options: nosniff: Verhindert, dass Browser den MIME-Typ einer Datei erraten. Ohne diesen Header konnte ein Browser eine Textdatei als JavaScript ausfuhren, wenn der Inhalt wie Code aussieht.
- Referrer-Policy: strict-origin-when-cross-origin: Kontrolliert, wie viele URL-Informationen beim Navigieren zu externen Seiten mitgesendet werden. Das verhindert, dass sensible URL-Parameter (wie Passwort-Reset-Tokens) an Drittanbieter-Server weitergegeben werden.
- Permissions-Policy: Beschrankt den Zugriff auf Browser-Funktionen wie Kamera, Mikrofon, Geolokalisierung und Payment-APIs fur eingebettete Inhalte. Selbst wenn du diese Funktionen nicht nutzt, verhindert die Policy, dass eingeschleuste Skripte sie missbrauchen.
- Content-Security-Policy (CSP): Der machtigste Sicherheitsheader, aber auch der komplexeste. CSP definiert, welche Quellen Skripte, Styles, Bilder und andere Ressourcen laden durfen. Beginne mit
Content-Security-Policy-Report-Only, um Verstossse zu uberwachen, ohne deine Seite zu beschadigen. Ein minimaler Ausgangspunkt:Content-Security-Policy: default-src 'self'; script-src 'self'; style-src 'self' 'unsafe-inline'; img-src 'self' data:;
Du kannst diese Header in deiner .htaccess-Datei (Apache), deiner Nginx-Konfiguration oder uber ein WordPress-Sicherheitsplugin setzen. Bei Cloudflare lassen sich die meisten auch unter Security > Settings konfigurieren.
WordPress-Core-Hartung: Wichtige Sicherheitsmassnahmen
WordPress selbst wird gut gewartet und regelmasig gepatcht, aber die Standardkonfiguration lasst einige Turen offen, die du bewusst schliessen solltest.
- WordPress Core, Plugins und Themes konsequent aktuell halten: Die Mehrzahl der WordPress-Hacks nutzt bekannte Schwachstellen in veralteter Software aus. Aktiviere automatische Minor-Updates (sind standardmassig an) und prufe mindestens wochentlich auf grosse Updates. Erwage, automatische Plugin-Updates fur vertrauenswurdige Plugins zu aktivieren.
- Ungenutzte Plugins und Themes vollstandig deinstallieren: Ein deaktiviertes Plugin entfernt nicht seinen Code vom Server. Angreifer konnen Schwachstellen auch in deaktivierten Plugins ausnutzen. Losche alles, was du nicht aktiv nutzt, und behalte nur ein Standard-Theme als Fallback.
- XML-RPC deaktivieren: Die XML-RPC-Schnittstelle (
/xmlrpc.php) wurde fur Remote-Publishing und Pingbacks entwickelt. Heute wird sie hauptsachlich fur Brute-Force-Amplification-Angriffe und DDoS missbraucht. Sofern du sie nicht fur Jetpack oder die WordPress-Mobile-App benoetigst, deaktiviere sie komplett. Blockierung auf Server-Ebene:# Apache .htaccess <Files xmlrpc.php> Order Deny,Allow Deny from all </Files> - REST-API-Benutzer-Endpunkt einschranken: Standardmassig gibt
/wp-json/wp/v2/usersBenutzernamen fur jeden preis. Damit konnen Angreifer trivial gultige Login-Namen ermitteln. Beschranke diesen Endpunkt auf authentifizierte Anfragen, entweder mit einem Plugin oder einem eigenen Code-Snippet. - Benutzer-Enumeration uber Autoren-Archive blockieren: Auch ohne REST API konnen Angreifer Benutzernamen ermitteln, indem sie
/?author=1,/?author=2usw. aufrufen. Blockiere dies durch Umleitung der Autoren-Archiv-Anfragen oder deaktiviere sie vollstandig, wenn deine Seite sie nicht benotigt. - WordPress-Versionsnummer entfernen: WordPress gibt seine Version in einem Meta-Tag und in den URLs von Core-CSS/JS-Dateien aus. Das Entfernen der Version zwingt Angreifer zum Ausprobieren, anstatt einfach bekannte Schwachstellen fur deine exakte Version nachzuschlagen.
- Debug-Log absichern oder loschen: Wenn
WP_DEBUG_LOGaktiviert ist, schreibt WordPress Fehler in/wp-content/debug.log. Diese Datei kann Datenbankabfragen, Dateipfade, Plugin-Fehler und andere fur Angreifer nutzliche Informationen enthalten. Lass Debug-Logging auf Produktivsystemen niemals aktiviert, und wenn die Datei existiert, losche sie oder blockiere den Zugriff. - Starke, einzigartige Passworter und Zwei-Faktor-Authentifizierung verwenden: Jedes WordPress-Konto sollte ein Passwort mit mindestens 16 Zeichen haben, das einzigartig fur diese Seite ist. Fuege Zwei-Faktor-Authentifizierung (2FA) mit einem Plugin wie WP 2FA oder Wordfence Login Security hinzu. Diese einzelne Massnahme blockiert praktisch alle Brute-Force-Angriffe.
- Login-Versuche begrenzen: WordPress erlaubt standardmassig unbegrenzte Anmeldeversuche. Verwende ein Plugin wie Limit Login Attempts Reloaded, um IP-Adressen nach einigen fehlgeschlagenen Versuchen zu sperren, oder nutze eine Web Application Firewall (WAF) mit eingebautem Brute-Force-Schutz.
- Standard-Datenbank-Tabellenprafix andern: WordPress verwendet
wp_als Standard-Prafix. Eine Anderung zu einem einzigartigen Wert bei der Installation erschwert automatisierte SQL-Injection-Angriffe leicht. Falls deine Seite bereits live ist, kannst du es nachtraglich andern, aber sichere vorher deine Datenbank.
WordPress-Dateiberechtigungen und Server-Sicherheit
Dateiberechtigungen bestimmen, wer Dateien auf deinem Server lesen, schreiben und ausfuhren darf. Falsche Berechtigungen gehoren zu den haufigsten Sicherheitsfehlern.
- Korrekte Dateiberechtigungen setzen: Verwende 644 fur Dateien und 755 fur Verzeichnisse. Die
wp-config.phpsollte auf 600 oder 640 gesetzt sein. Verwende niemals 777, da dies jedem vollen Lese-, Schreib- und Ausfuhrungszugriff gibt. - wp-config.php vor Webzugriff schutzen: Diese Datei enthalt deine Datenbank-Zugangsdaten, Authentifizierungsschlussel und Salts. Fur Apache in der
.htaccess:
Einige Sicherheitsleitfaden empfehlen,<Files wp-config.php> Order Allow,Deny Deny from all </Files>wp-config.phpein Verzeichnis uber den Web-Root zu verschieben. Das funktioniert bei den meisten Setups, kann aber bei manchen Hosting-Anbietern Probleme verursachen. - Den eingebauten Datei-Editor deaktivieren: WordPress enthalt einen Datei-Editor im Admin-Panel, mit dem Administratoren Theme- und Plugin-Dateien direkt bearbeiten konnen. Wenn ein Angreifer Admin-Zugang erlangt, kann er uber diesen Editor Schadcode in jede PHP-Datei einschleusen. Deaktiviere ihn mit dieser Zeile in der
wp-config.php:define('DISALLOW_FILE_EDIT', true); - Zugriff auf sensible Dateien blockieren: Dateien wie
readme.html,license.txtundwp-config-sample.phpverraten Informationen uber deine WordPress-Version und Konfiguration. Blockiere den offentlichen Zugriff uber deine Server-Konfiguration. - Verzeichnisauflistung deaktivieren: Wenn Directory Listing aktiviert ist, kann jeder deinen
/wp-content/uploads/-Ordner durchbrowsen und jede hochgeladene Datei sehen. Deaktiviere dies mitOptions -Indexesin deiner.htaccess.
WordPress-Backup-Strategie und Wiederherstellungsplanung
Kein Sicherheitskonzept ist vollstandig ohne eine zuverlassige Backup-Strategie. Im schlimmsten Fall ist ein aktuelles Backup der Unterschied zwischen einer kleinen Unannehmlichkeit und einem Totalverlust.
- Tagliche Backups automatisieren: Verwende ein Plugin wie UpdraftPlus, BlogVault oder BackWPup, um automatische Backups nach Zeitplan auszufuhren. Sichere mindestens taglich. Seiten mit hohem Traffic oder WooCommerce-Shops sollten Echtzeit-Backups in Betracht ziehen.
- Backups extern speichern: Bewahre Kopien auf einem externen Dienst wie Amazon S3, Google Cloud Storage oder Dropbox auf. Wenn dein Server kompromittiert wird, konnen lokale Backups ebenfalls betroffen sein.
- Den Wiederherstellungsprozess testen: Ein Backup, das du nie getestet hast, ist ein Backup, dem du nicht vertrauen kannst. Stelle dein Backup mindestens einmal pro Quartal in einer Staging-Umgebung wieder her, um zu bestatigen, dass es funktioniert.
- Mehrere Backup-Generationen vorhalten: Behalte mindestens 30 Tage taglicher Backups. Manche Infektionen bleiben wochenlang unentdeckt, daher brauchst du die Moglichkeit, auf einen bekannt sauberen Zustand zuruckzurollen.
Laufende WordPress-Sicherheitsuberwachung
Sicherheit ist kein einmaliges Projekt. Regelmasig werden neue Schwachstellen entdeckt, und die Konfiguration deiner Seite kann sich mit der Zeit verandern, wenn Plugins hinzugefugt oder Einstellungen geandert werden.
- Ein Sicherheitsplugin installieren: Wordfence, Sucuri oder NinjaFirewall bieten Echtzeit-Schutz mit Firewall-Regeln, Malware-Scanning und Login-Sicherheit. Wahle eines (nicht mehrere, da sie sich gegenseitig storen konnen) und konfiguriere die Benachrichtigungen.
- Automatische InspectWP-Scans einrichten: Plane regelmasige Scans, um deine Sicherheitslage uber die Zeit zu uberwachen. InspectWP benachrichtigt dich uber neue Probleme wie fehlende Header, exponierte Debug-Logs oder Versionsnummer-Leaks, sobald sie auftreten.
- Update-Benachrichtigungen aktivieren: Stelle sicher, dass WordPress dir E-Mail-Benachrichtigungen sendet, wenn Core-, Plugin- oder Theme-Updates verfugbar sind. Sicherheitspatches mussen oft innerhalb von Stunden nach der Veroffentlichung eingespielt werden.
- Benutzerkonten regelmasig uberprufen: Entferne inaktive Konten, besonders solche mit Administrator- oder Redakteur-Rollen. Prufe deine Benutzerliste mindestens monatlich und entziehe sofort den Zugriff fur alle, die ihn nicht mehr benotigen.
- Zugriffsprotokolle uberwachen: Prufe deine Server-Logs auf ungewohnliche Muster, wie wiederholte Anfragen an
/wp-login.php,/xmlrpc.phpoder Pfade, die nicht existieren. Viele Sicherheitsplugins bieten eine vereinfachte Log-Ansicht.
WordPress-Sicherheit mit InspectWP uberprufen
Fuhre einen umfassenden InspectWP-Scan durch, um alle sicherheitsrelevanten Punkte auf einmal zu prufen. Der Sicherheitsbereich deckt SSL-Konfiguration, HTTP-Sicherheitsheader, WordPress-Versionsanzeige, REST-API-Benutzer-Enumeration, Debug-Log-Zuganglichkeit und vieles mehr ab. Richte automatische Scans ein, um Benachrichtigungen zu erhalten, sobald sich deine Sicherheitslage andert, damit du neue Probleme beheben kannst, bevor sie ausgenutzt werden.