Die Absicherung Ihrer WordPress-Website gegen SQL-Injection-Angriffe ist notwendig, um Ihre Daten zu schützen und das Vertrauen Ihrer Besucher zu erhalten.
SQL-Injection ist eine gängige Technik, die von Hackern verwendet wird, um Ihre Datenbank anzugreifen. Sobald dies geschehen ist, können Hacker Ihre sensiblen Daten lesen, sie verändern und die Kontrolle über Ihre gesamte Datenbank übernehmen.
Um Ihre Website vor dieser Bedrohung zu schützen, müssen Sie unbedingt strenge Sicherheitsmaßnahmen auf Ihrer Website einführen.
Bei WPBeginner nehmen wir die Sicherheit sehr ernst und sind weit darüber hinaus gegangen, um unsere Website vor Hackern und Malware zu schützen. Viele der Sicherheitsmaßnahmen, die wir gegen SQL-Injection-Angriffe empfehlen, sind Methoden, die wir selbst erfolgreich eingesetzt haben.
In diesem Artikel geben wir Ihnen einige umsetzbare Tipps, um SQL-Injection-Angriffe in WordPress Schritt für Schritt zu verhindern.
Warum WordPress SQL-Injection-Angriffe verhindern?
SQL steht für Structured Query Language, eine Programmiersprache, die mit der Datenbank Ihrer WordPress-Website kommuniziert. Ohne diese Funktion kann Ihre Website keine dynamischen Inhalte generieren.
Unerlaubte Benutzereingaben, veraltete Software oder die Preisgabe sensibler Informationen können jedoch Sicherheitslücken verursachen und es Hackern leicht machen, SQL-Injection-Angriffe durchzuführen.
Dieser Angriff zielt auf Ihren Datenbankserver und fügt bösartigen Code oder Anweisungen zu Ihrem SQL hinzu. Auf diese Weise können Hacker sensible Informationen, die in Ihrer Datenbank gespeichert sind, wie z. B. Benutzerdaten, für Identitätsdiebstahl, Kontoübernahme, Finanzbetrug usw. nutzen.
Sie können auch Datenbankeinträge oder Kontoberechtigungen ändern und DDoS-Angriffe durchführen, so dass es für tatsächliche Benutzer schwierig wird, Ihre Website zu besuchen.
Dies kann das Vertrauen der Kunden schädigen, sich negativ auf die Benutzererfahrung auswirken und den Website-Verkehr verringern, was sich negativ auf das Wachstum Ihres kleinen Unternehmens auswirkt.
Werfen wir nun einen Blick auf einige umsetzbare Tipps, die SQL-Injection-Angriffe in WordPress verhindern können. Hier ein kurzer Überblick darüber, worüber wir in diesem Artikel sprechen werden:
- Perform Site Updates Regularly And Use a Firewall
- Hide Your WordPress Version
- Change the WordPress Database Prefix
- Validate User Data
- Limit User Role Access and Permissions
- Create Custom Database Error Messages
- Remove Unnecessary Database Functionality
- Bonus: Use WPBeginner Pro Services to Create a Secure Site
Hinweis: Bevor Sie zur Vorbeugung Änderungen an Ihrer Datenbank vornehmen, empfehlen wir Ihnen, eine Sicherungskopie davon zu erstellen. Auf diese Weise können Sie, falls etwas schief geht, das Backup verwenden, um es zu reparieren. Weitere Informationen finden Sie in unserer Anleitung zur manuellen Erstellung eines WordPress-Datenbank-Backups.
1. Führen Sie regelmäßig Website-Updates durch und verwenden Sie eine Firewall
Eine wirksame Methode zur Verhinderung von SQL-Injection-Angriffen besteht darin, Ihre WordPress-Website regelmäßig auf die neueste Version zu aktualisieren. Mit diesen Updates werden häufig Sicherheitslücken geschlossen, darunter auch Probleme mit der Datenbanksoftware, wodurch es für Hacker schwieriger wird, Ihre Website anzugreifen.
Wenn Sie eine veraltete Version von WordPress verwenden, empfehlen wir Ihnen, automatische Updates für die neueste Version zu aktivieren, indem Sie die Seite Dashboard “ Updates besuchen.
Klicken Sie hier einfach auf den Link „Automatische Updates für alle neuen Versionen von WordPress aktivieren“. Jetzt werden alle wichtigen Updates bei Veröffentlichung auf Ihrer Website installiert.
Weitere Informationen finden Sie in unserem Leitfaden für Einsteiger, wie Sie WordPress sicher aktualisieren können.
Wenn Sie das getan haben, können Sie auch eine Firewall für zusätzliche Sicherheit hinzufügen. Diese Funktion fungiert als Schutzschild zwischen Ihrer Website und dem eingehenden Datenverkehr und blockiert gängige Sicherheitsbedrohungen, einschließlich SQL-Angriffe, bevor sie Ihre Website erreichen.
Wenn Sie ein kleines Online-Unternehmen betreiben, empfehlen wir Sucuri, eine der besten WordPress-Firewall-Software-Optionen auf dem Markt. Sie bietet eine Firewall auf Anwendungsebene, Schutz vor Brute-Force-Angriffen sowie Dienste zur Entfernung von Malware und schwarzen Listen und ist damit eine gute Wahl.
Wir haben Erfahrungen aus erster Hand mit diesem Tool. Es hat uns in der Vergangenheit sogar geholfen, 450.000 WordPress-Angriffe auf unsere Website zu blockieren.
Allerdings ist Sucuri möglicherweise nicht leistungsfähig genug für größere Websites mit hohem Datenverkehr. In diesem Fall könnten Sie Cloudflare in Betracht ziehen, das Ihnen sowohl Sicherheitsfunktionen als auch ein beeindruckendes Content Delivery Network (CDN) bieten kann.
Wenn Sie sich nicht sicher sind, welche Option für Ihre Website die beste ist, lesen Sie unseren Artikel darüber, warum wir von Sucuri zu Cloudflare gewechselt haben, oder unseren Vergleich zwischen Sucuri und Cloudflare.
2. Verstecken Sie Ihre WordPress-Version
WordPress zeigt standardmäßig die aktuelle Versionsnummer der Software an, die Sie auf Ihrer Website verwenden. Wenn Sie zum Beispiel WordPress 6.4 verwenden, wird diese Version auf Ihrer Website zur Nachverfolgung angezeigt.
Die öffentliche Sichtbarkeit Ihrer Versionsnummer kann jedoch ein Sicherheitsrisiko darstellen und es Hackern erleichtern, WordPress-SQL-Injection-Angriffe durchzuführen.
Das liegt daran, dass jede Version von WordPress ihre eigenen Schwachstellen hat, die Angreifer ausnutzen können, nachdem sie Ihre Version entdeckt haben. So können sie über anfällige Eingabefelder bösartige Codeschnipsel auf Ihrer Website einfügen.
Sie können die Versionsnummer ganz einfach von Ihrer Website entfernen, indem Sie den folgenden Codeschnipsel in Ihre functions.php-Datei einfügen.
add_filter('the_generator', '__return_empty_string');
Sobald Sie das getan haben, können Hacker Ihre WordPress-Versionsnummer nicht mehr durch automatische Scanner oder auf andere Weise finden.
Hinweis: Denken Sie daran, dass ein kleiner Fehler beim Hinzufügen von Code dazu führen kann, dass Ihre Website nicht mehr zugänglich ist. Aus diesem Grund empfehlen wir WPCode. Es ist das beste Code-Snippets-Plugin, das das Hinzufügen von benutzerdefiniertem Code zu Ihrer Website super sicher und einfach macht.
Weitere Details finden Sie in unserem Tutorial zum richtigen Entfernen der WordPress-Versionsnummer.
3. Ändern des WordPress-Datenbankpräfixes
Standardmäßig fügt WordPress allen Datenbankdateien das Präfix wp_ hinzu, was es Hackern leicht macht, einen Angriff zu planen, indem sie das Präfix anvisieren.
Die einfachste Möglichkeit, SQL-Injection-Angriffe zu verhindern, besteht darin, das Standard-Präfix für die Datenbank durch etwas Eindeutiges zu ersetzen, das Hacker nicht erraten können.
Sie können dies ganz einfach tun, indem Sie Ihre Website per FTP verbinden. Danach öffnen Sie die Datei wp-config.php und suchen die Zeile $table_prefix
. Dann können Sie es von dem Standard wp_
in etwas anderes wie dieses ändern: wp_a123456_
.
$table_prefix = 'wp_a123456_';
Als nächstes müssen Sie das cPanel Ihres Webhosting-Kontos aufrufen. Für dieses Tutorial verwenden wir Bluehost. Ihr cPanel kann jedoch je nach Webhosting-Unternehmen etwas anders aussehen.
Wechseln Sie hier auf die Registerkarte „Erweitert“ und klicken Sie auf die Schaltfläche „Verwalten“ neben dem Abschnitt „PHPMyAdmin“.
Daraufhin öffnet sich eine neue Seite, auf der Sie in der linken Spalte den Namen Ihrer Datenbank auswählen und oben auf die Registerkarte „SQL“ wechseln müssen.
Danach können Sie die folgende SQL-Abfrage in das Textfeld eingeben.
Vergessen Sie nicht, den Datenbankpräfix in denjenigen zu ändern, den Sie bei der Bearbeitung der Datei wp-config.php gewählt haben.
RENAME table `wp_comments` TO `wp_a123456_comments`;
RENAME table `wp_links` TO `wp_a123456_links`;
RENAME table `wp_options` TO `wp_a123456_options`;
RENAME table `wp_postmeta` TO `wp_a123456_postmeta`;
RENAME table `wp_RENAME table `wp_commentmeta` TO `wp_a123456_commentmeta`;
posts` TO `wp_a123456_posts`;
RENAME table `wp_terms` TO `wp_a123456_terms`;
RENAME table `wp_termmeta` TO `wp_a123456_termmeta`;
RENAME table `wp_term_relationships` TO `wp_a123456_term_relationships`;
RENAME table `wp_term_taxonomy` TO `wp_a123456_term_taxonomy`;
RENAME table `wp_usermeta` TO `wp_a123456_usermeta`;
RENAME table `wp_users` TO `wp_a123456_users`;
Weitere Anweisungen finden Sie in unserer Anleitung zum Ändern des WordPress-Datenbankpräfixes, um die Sicherheit zu verbessern.
4. Benutzerdaten validieren
Hacker injizieren SQL-Angriffe auf Ihre Website in der Regel über Felder zur Eingabe von Benutzerdaten, z. B. Kommentarabschnitte oder Kontaktformulare.
Deshalb ist es wichtig, alle in Ihrem WordPress-Blog eingegebenen Daten zu validieren . Dies bedeutet, dass Benutzerdaten nicht auf Ihrer Website übermittelt werden, wenn sie nicht einem bestimmten Format entsprechen.
Zum Beispiel kann ein Benutzer sein Formular nicht abschicken, wenn das Feld für die E-Mail-Adresse nicht das Symbol „@“ enthält. Indem Sie diese Validierung zu den meisten Ihrer Formularfelder hinzufügen, können Sie SQL-Injection-Angriffe verhindern.
Dazu benötigen Sie Formidable Forms, ein fortschrittliches Plugin zur Formularerstellung. Es verfügt über die Option „Input Mask Format“ (Eingabemaskenformat), mit der Sie das Format hinzufügen können, dem die Benutzer folgen müssen, um die Daten in den Formularfeldern zu übermitteln.
Sie können ein bestimmtes Format für Telefonnummern oder einzelne Textfelder hinzufügen.
Wenn Sie Ihre Formularfelder nicht validieren möchten, empfehlen wir Ihnen WPForms, da es das beste Kontaktformular-Plugin ist, das über einen vollständigen Spamschutz und Google reCAPTCHA-Unterstützung verfügt.
Außerdem können Sie Ihren Formularen Dropdown-Menüs und Kontrollkästchen hinzufügen, was es Hackern erschwert, bösartige Daten hinzuzufügen.
Weitere Einzelheiten finden Sie in unserem Tutorial zur Erstellung eines sicheren Kontaktformulars in WordPress.
5. Beschränkung des Zugriffs und der Berechtigungen für Benutzerrollen
Ein weiterer Tipp zur Verhinderung von WordPress-SQL-Injection-Angriffen besteht darin, den Benutzerzugang zu Ihrer Website zu beschränken.
Wenn Sie z. B. einen Blog mit mehreren Autoren betreiben, haben Sie neben Abonnenten und Administratoren auch verschiedene Autoren. In diesem Fall können Sie die Sicherheit der Website verbessern, indem Sie den vollen Administratorenzugang auf den Administrator beschränken.
Sie können alle anderen Benutzerrollen auf bestimmte Funktionen beschränken, die sie für die Ausführung ihrer Arbeit benötigen. Dadurch wird der Benutzerzugriff auf Ihre Datenbank eingeschränkt und SQL-Injection-Angriffe verhindert.
Sie können dies mit dem kostenlosen Plugin Remove Dashboard Access tun. Rufen Sie nach der Aktivierung einfach die Seite Einstellungen “ Dashboard-Zugang auf, wo Sie festlegen können, welche Benutzerrollen Zugriff auf das Dashboard erhalten.
Wenn Sie Benutzer in Abhängigkeit von ihren Fähigkeiten einschränken möchten, lesen Sie bitte unsere Anleitung zum Hinzufügen oder Entfernen von Fähigkeiten aus Benutzerrollen in WordPress.
Ebenso können Sie in Ihrem Verwaltungsbereich die Autoren auf ihre eigenen Beiträge beschränken, um die Sicherheit zu erhöhen.
6. Benutzerdefinierte Datenbank-Fehlermeldungen erstellen
Es kann vorkommen, dass Ihre Benutzer auf Ihrer Website auf einen Datenbankfehler stoßen, der wichtige Informationen über Ihre Datenbank anzeigt und sie anfällig für SQL-Injection-Angriffe macht.
In diesem Fall empfehlen wir, eine benutzerdefinierte Datenbank-Fehlermeldung zu erstellen, die den Benutzern angezeigt wird, wenn sie auf diesen häufigen Fehler stoßen. Kopieren Sie dazu den folgenden Inhalt, fügen Sie ihn in eine Notepad-Anwendung ein und speichern Sie die Datei als „db-error.php“.
<?php // custom WordPress database error page
header('HTTP/1.1 503 Service Temporarily Unavailable');
header('Status: 503 Service Temporarily Unavailable');
header('Retry-After: 600'); // 1 hour = 3600 seconds
// If you wish to email yourself upon an error
// mail("your@email.com", "Database Error", "There is a problem with the database!", "From: Db Error Watching");
?>
<!DOCTYPE HTML>
<html>
<head>
<title>Database Error</title>
<style>
body { padding: 20px; background: red; color: white; font-size: 60px; }
</style>
</head>
<body>
You got problems.
</body>
Verbinden Sie anschließend Ihre Website mit einem FTP-Programm und laden Sie die soeben erstellte Datei in das Verzeichnis /wp-content/ Ihrer Website hoch.
Wenn nun auf Ihrer Website ein Datenbankfehler auftritt, erhalten die Benutzer eine Fehlermeldung, die sie über das Problem informiert, ohne dass sensible Informationen preisgegeben werden.
Außerdem wird in der Registerkarte des Webbrowsers der Titel „Datenbankfehler“ angezeigt.
Weitere Details finden Sie in unserem Tutorial über das Hinzufügen einer benutzerdefinierten Datenbank-Fehlerseite in WordPress.
7. Unnötige Datenbankfunktionalität entfernen
Um SQL-Injection-Angriffe zu verhindern, sollten Sie auch versuchen, alle Datenbankfunktionen und Dateien zu entfernen, die Sie nicht auf Ihrer Website benötigen.
So können Sie beispielsweise überflüssige Tabellen, Papierkorb oder nicht genehmigte Kommentare löschen, die Ihre Datenbank anfällig für Hacker machen.
Um unnötige Datenbankfunktionen zu entfernen, empfehlen wir WP-Optimize. Es ist ein erstaunliches Plugin, das unnötige Tabellen, Beitragsrevisionen, Entwürfe, gelöschte Kommentare, gelöschte Beiträge, Pingbacks, Beitrags-Metadaten und so vieles mehr entfernt.
Es entfernt alle Dateien, die Sie nicht benötigen, und optimiert Ihre Datenbank, um sie sicherer und schneller zu machen. Weitere Informationen finden Sie in unserem Leitfaden für Einsteiger zur Optimierung Ihrer WordPress-Datenbank.
Bonus: Nutzen Sie WPBeginner Pro Services, um eine sichere Website zu erstellen
Wenn Sie alle vorbeugenden Maßnahmen gegen SQL-Injection-Angriffe getroffen haben, können Sie sich auch für WPBeginner Pro Services entscheiden.
Wir können Ihnen helfen, andere Sicherheitslücken zu erkennen und zu beheben, von denen Sie nichts wissen. Und wenn Sie bereits mit einem SQL-Injection-Angriff konfrontiert wurden, können unsere Experten Ihnen helfen, den Schaden einzudämmen und Ihre Systeme wiederherzustellen.
Sie können uns auch beauftragen, die Geschwindigkeit, das Design und die Suchmaschinenoptimierung Ihrer Website zu verbessern oder sogar Ihre bestehende WordPress-Website komplett neu zu erstellen, unabhängig davon, ob sie gehackt wurde oder nicht.
Weitere Informationen finden Sie in unseren WPBeginner Professional Services.
Wir hoffen, dieser Artikel hat Ihnen geholfen, WordPress-SQL-Injection-Angriffe zu verhindern. Vielleicht interessiert Sie auch unser Leitfaden für Anfänger, wie man nach WordPress-Sicherheitsupdates sucht, oder unser ultimativer Leitfaden zur WordPress-Sicherheit.
Wenn Ihnen dieser Artikel gefallen hat, dann abonnieren Sie bitte unseren YouTube-Kanal für WordPress-Videotutorials. Sie können uns auch auf Twitter und Facebook finden.
Syed Balkhi
Hey WPBeginner readers,
Did you know you can win exciting prizes by commenting on WPBeginner?
Every month, our top blog commenters will win HUGE rewards, including premium WordPress plugin licenses and cash prizes.
You can get more details about the contest from here.
Start sharing your thoughts below to stand a chance to win!