WordPress-Sicherheitseinstellungen, die Sie kennen müssen

Warum WordPress-Sicherheit kritisch ist
Das meistgenutzte CMS treibt über 43 % aller Websites im Internet an, was es zum häufigsten Ziel von Hackern macht. Jeden Tag finden etwa 90.000 Angriffe auf WordPress-Websites statt. Hacker verwenden automatisierte Tools, die das Internet scannen und nach Websites mit bekannten Schwachstellen suchen – Sie müssen kein wichtiges Ziel sein, um angegriffen zu werden. Ein veraltetes Plugin oder ein schwaches Passwort reicht aus.
Die gute Nachricht ist, dass Sie die meisten Angriffe durch Anwendung grundlegender Sicherheitseinstellungen verhindern können. Sie müssen kein Programmierer oder Sicherheitsexperte sein – Sie müssen nur die Schritte in diesem Leitfaden befolgen und sie auf Ihrer Website anwenden.
Schutz der wp-config.php-Datei
wp-config.php ist die wichtigste Datei auf Ihrer WordPress-Website. Sie enthält Datenbankzugangsdaten, Sicherheitsschlüssel, Tabellenpräfixe und andere kritische Konfigurationen. Wenn ein Angreifer Zugriff auf diese Datei erhält, hat er die volle Kontrolle über Ihre Website.
Verschieben von wp-config.php
WordPress sucht wp-config.php automatisch ein Verzeichnis über dem Web-Root. Das bedeutet, Sie können diese Datei aus public_html/ in das Verzeichnis darüber verschieben, wo sie über den Webbrowser nicht zugänglich ist. Dies ist eine der einfachsten, aber effektivsten Schutzmaßnahmen. Wenn Ihr Hosting keinen Zugriff auf das Verzeichnis über public_html erlaubt, kontaktieren Sie den cPanel-Support.
Sicherheitsschlüssel und Salts
wp-config.php enthält 8 Sicherheitsschlüssel (AUTH_KEY, SECURE_AUTH_KEY, LOGGED_IN_KEY, NONCE_KEY und deren SALT-Paare), die zur Verschlüsselung von Cookies und Sitzungen verwendet werden. Wenn diese Schlüssel Standardwerte oder leer sind, sind Benutzersitzungen angreifbar. Generieren Sie eindeutige Schlüssel auf der WordPress.org Secret Key API-Seite und fügen Sie sie in wp-config.php ein. Ändern Sie diese Schlüssel regelmäßig – dies meldet automatisch alle Nutzer ab und macht bestehende Cookies ungültig.
Deaktivieren der Dateibearbeitung
WordPress verfügt über einen integrierten Editor, der das Bearbeiten von PHP-Dateien von Themes und Plugins direkt aus dem Adminbereich ermöglicht. Dies ist ein enormes Sicherheitsrisiko – wenn ein Angreifer Zugriff auf das Admin-Konto erhält, kann er bösartigen Code direkt über den Editor einschleusen. Deaktivieren Sie dies, indem Sie die Zeile define('DISALLOW_FILE_EDIT', true); zu wp-config.php hinzufügen. Dies verhindert keine Plugin- und Theme-Updates, sondern nur die direkte Codebearbeitung.
Debug-Modus in der Produktion
Lassen Sie WP_DEBUG niemals auf einer produktiven Website aktiviert. Der Debug-Modus zeigt PHP-Fehler und -Warnungen an Besucher, was Informationen über die Website-Struktur, Dateipfade und Softwareversionen preisgibt. Setzen Sie define('WP_DEBUG', false); auf der produktiven Website. Wenn Sie Debug-Informationen benötigen, verwenden Sie define('WP_DEBUG_LOG', true); mit define('WP_DEBUG_DISPLAY', false);, damit Fehler in eine Datei geloggt werden, anstatt den Besuchern angezeigt zu werden.
Dateiberechtigungen
Ordnungsgemäße Dateiberechtigungen sind die erste Verteidigungslinie auf Serverebene. Falsche Berechtigungen erlauben Angreifern, Dateien auf Ihrem Server zu lesen, zu ändern oder auszuführen.
Empfohlene Berechtigungen
WordPress empfiehlt folgende Berechtigungen: Verzeichnisse sollten 755 sein (Besitzer kann lesen, schreiben und ausführen; Gruppe und andere können lesen und ausführen), Dateien sollten 644 sein (Besitzer kann lesen und schreiben; Gruppe und andere können nur lesen), wp-config.php sollte 640 oder 600 sein (nur Besitzer kann lesen und schreiben). Verwenden Sie niemals 777-Berechtigungen – das bedeutet, dass jeder auf dem Server Ihre Dateien lesen, schreiben und ausführen kann.
Schutz des wp-includes-Verzeichnisses
Das Verzeichnis wp-includes enthält Core-WordPress-Dateien, die niemals direkt zugänglich sein sollten. Fügen Sie in der .htaccess-Datei im Root-Verzeichnis eine Regel hinzu, die den direkten Zugriff auf PHP-Dateien in wp-includes blockiert. Dies verhindert, dass Angreifer Core-Dateien direkt ausführen, was eine häufige Technik bei WordPress-Angriffen ist.
Schutz des Uploads-Verzeichnisses
Das Verzeichnis wp-content/uploads ist das einzige Verzeichnis, in das WordPress schreiben muss (für hochgeladene Bilder, Dokumente usw.). Angreifer versuchen häufig, eine bösartige PHP-Datei als Bild getarnt hochzuladen und dann auszuführen. Verhindern Sie dies, indem Sie eine .htaccess-Regel im Uploads-Verzeichnis hinzufügen, die die Ausführung von PHP-Dateien verbietet. Das bedeutet, dass selbst wenn ein Angreifer eine PHP-Datei erfolgreich hochlädt, der Server sie nicht ausführen wird.
Deaktivierung von XML-RPC
XML-RPC (xmlrpc.php) ist ein älteres Protokoll, das externen Anwendungen die Kommunikation mit WordPress ermöglicht. Es war nützlich vor der REST API, stellt aber heute ein erhebliches Sicherheitsrisiko dar.
Warum XML-RPC gefährlich ist
XML-RPC wird für zwei Arten von Angriffen verwendet: Brute-Force-Angriffe (ein Angreifer kann Hunderte von Passwörtern in einer einzigen XML-RPC-Anfrage mit der system.multicall-Methode testen und so das Rate Limiting auf der Login-Seite umgehen) und DDoS-Angriffe (die Pingback-Funktion kann für Amplification-DDoS-Angriffe missbraucht werden, bei denen Ihre Website Teil eines Botnets wird). Die meisten modernen WordPress-Funktionalitäten (mobile App, Jetpack) verwenden die REST API statt XML-RPC.
So deaktivieren Sie XML-RPC
Der einfachste Weg ist, in der .htaccess-Datei eine Regel hinzuzufügen, die den Zugriff auf die xmlrpc.php-Datei blockiert und einen 403 Forbidden-Status zurückgibt. Alternativ verwenden Sie einen Filter in functions.php: add_filter('xmlrpc_enabled', '__return_false');. Dies deaktiviert die XML-RPC-Funktionalität, erlaubt aber weiterhin den Zugriff auf die Datei (was bedeutet, dass der Server die Anfrage trotzdem verarbeitet). Für eine vollständige Sperre ist die .htaccess-Methode besser.
Security Header
HTTP-Security-Header sind Anweisungen, die der Server an den Browser sendet, um die Sicherheit der Website zu verbessern. Die Implementierung dieser Header erfordert keine Änderungen im WordPress-Code – sie werden zu .htaccess oder der Nginx-Konfiguration hinzugefügt.
Content-Security-Policy (CSP)
Der CSP-Header steuert, welche Ressourcen der Browser auf Ihrer Seite laden darf. Dies ist der mächtigste Schutz vor XSS-Angriffen (Cross-Site Scripting), da er die Ausführung nicht autorisierten JavaScript-Codes verhindert. Beginnen Sie mit dem Content-Security-Policy-Report-Only-Header, um die Richtlinie ohne Blockierung von Ressourcen zu testen, und wechseln Sie dann in den Enforcing-Modus. Für WordPress kann die CSP-Konfiguration aufgrund von Inline-Skripten und externen Ressourcen, die Themes und Plugins verwenden, komplex sein.
X-Content-Type-Options
Der Header X-Content-Type-Options: nosniff verhindert, dass der Browser den MIME-Typ einer Datei errät. Ohne diesen Header kann ein Angreifer eine bösartige Datei mit falscher Erweiterung hochladen, und der Browser versucht, sie basierend auf dem Inhalt statt der Erweiterung auszuführen. Dies ist ein einfacher Header ohne negative Effekte – aktivieren Sie ihn immer.
X-Frame-Options
Der Header X-Frame-Options: SAMEORIGIN verhindert das Laden Ihrer Website innerhalb eines iframes auf einer anderen Website. Dies schützt vor Clickjacking-Angriffen, bei denen ein Angreifer einen transparenten iframe Ihrer Website über seine eigene Website legt, um Nutzer dazu zu bringen, auf etwas zu klicken. SAMEORIGIN erlaubt iframes nur von derselben Domain.
Strict-Transport-Security (HSTS)
Der HSTS-Header zwingt den Browser, immer eine verschlüsselte HTTPS-Verbindung zu Ihrer Website zu verwenden. Sobald der Browser einen HSTS-Header empfängt, leitet er automatisch alle HTTP-Anfragen auf HTTPS um, ohne den Server zu kontaktieren. Dies schützt vor SSL-Stripping-Angriffen. Verwenden Sie Strict-Transport-Security: max-age=31536000; includeSubDomains (1 Jahr). WICHTIG: Aktivieren Sie HSTS erst, nachdem Sie sicher sind, dass SSL auf allen Seiten korrekt funktioniert.
Referrer-Policy
Referrer-Policy steuert, wie viele Informationen der Browser im Referer-Header sendet, wenn ein Nutzer auf einen Link klickt. Referrer-Policy: strict-origin-when-cross-origin sendet die vollständige URL für Same-Origin-Anfragen, nur die Origin für Cross-Origin-HTTPS-Anfragen und nichts für HTTP-Anfragen. Dies schützt die Privatsphäre der Nutzer und verhindert das Durchsickern von URL-Parametern an externe Websites.
Zusätzliche WordPress-Sicherheitseinstellungen
Änderung der Login-URL
Die Standard-WordPress-Login-URL ist /wp-admin/ oder /wp-login.php, was jeder Angreifer weiß. Die Änderung der Login-URL auf etwas Nicht-Standardmäßiges (z. B. /mein-zugang/) eliminiert die meisten automatisierten Brute-Force-Angriffe, da Bots die Login-Seite nicht finden werden. Verwenden Sie ein Plugin wie WPS Hide Login für eine einfache Änderung ohne Modifikation von Core-Dateien.
Zwei-Faktor-Authentifizierung (2FA)
2FA fügt neben dem Passwort eine zweite Schutzschicht hinzu. Selbst wenn ein Angreifer Ihr Passwort kennt, kann er nicht auf das Konto zugreifen, ohne den zweiten Faktor (meist Code vom Telefon). Verwenden Sie ein Plugin wie Google Authenticator oder Wordfence Login Security zur Implementierung von 2FA für alle Admin-Konten. Dies ist eine der effektivsten Schutzmaßnahmen – sie eliminiert praktisch alle Brute-Force- und Credential-Stuffing-Angriffe.
Begrenzung der Login-Versuche
WordPress erlaubt standardmäßig eine unbegrenzte Anzahl von Login-Versuchen, was Brute-Force-Angriffe ermöglicht. Verwenden Sie ein Plugin wie Limit Login Attempts Reloaded, das eine IP-Adresse nach einer bestimmten Anzahl fehlgeschlagener Versuche blockiert (empfohlen: 3–5 Versuche). Kombinieren Sie es mit CAPTCHA auf dem Login-Formular für zusätzlichen Schutz.
Regelmäßige Aktualisierung
Dies ist die wichtigste Sicherheitsmaßnahme von allen. 86 % der kompromittierten WordPress-Websites verwenden eine veraltete WordPress-Version, ein veraltetes Theme oder Plugin. Aktivieren Sie automatische Updates für WordPress-Minor-Versionen (Sicherheitspatches) und prüfen Sie Plugin- und Theme-Updates mindestens einmal pro Woche. Löschen Sie inaktive Plugins und Themes, da selbst ein deaktiviertes Plugin eine Schwachstelle haben kann, die ausgenutzt werden kann.
Fazit
WordPress-Sicherheit ist keine einmalige Aufgabe, sondern ein kontinuierlicher Prozess. Implementieren Sie die Einstellungen aus diesem Leitfaden Schritt für Schritt: Schützen Sie wp-config.php, setzen Sie ordnungsgemäße Dateiberechtigungen, deaktivieren Sie XML-RPC, fügen Sie Security-Header hinzu, ändern Sie die Login-URL, aktivieren Sie 2FA und aktualisieren Sie regelmäßig alles. Jede dieser Maßnahmen eliminiert eine ganze Kategorie von Angriffen. Bei BeoHosting kommen unsere Hosting-Pakete mit vorab konfiguriertem serverseitigem Schutz, einschließlich ModSecurity WAF, automatischen Backups und Malware-Scanning, aber der serverseitige Schutz funktioniert am besten in Kombination mit einem ordnungsgemäß konfigurierten WordPress.
BeoHosting Team
10+ Jahre Erfahrung — Spezialisten für Webhosting und Infrastruktur
- Web Hosting
- WordPress Hosting
- VPS
- Dedicated Serveri
- Domeni
- SSL
- cPanel
- LiteSpeed
- Linux administracija
- DNS
Zuletzt aktualisiert: