So schützen Sie Ihre WordPress-Website vor SQL-Injections

Veröffentlicht: 2022-03-09

WordPress ist aufgrund seiner vielfältigen Anwendungsmöglichkeiten eine der am häufigsten verwendeten Plattformen zum Erstellen von Websites. Sie können einen Online-Shop aufbauen, einen Blog über Ihr Lieblingshobby hosten, über Foren eine Community gründen oder ein großes Unternehmen vertreten.

Aber wie auch immer Sie es verwenden, eine Hauptverantwortung besteht darin, Ihre Website vor Hackern zu schützen. Aus diesem Grund ist es wichtig zu verstehen, wie man SQL-Injection-Angriffe (Structured Query Language) verhindert.

Die gute Nachricht ist, dass es viele Schritte gibt, die Sie unternehmen können, um Ihre WordPress-Site vor diesem bösartigen Code zu schützen. Wenn Sie lernen, wie Sie SQL-Injections erkennen, entfernen und verhindern, können Sie Ihre wertvollen Daten effektiv sichern und weniger anfällig für Angriffe machen.

Was ist eine SQL-Injection und wie funktioniert sie?

Um zu verstehen, wie die Injektionen funktionieren, ist es hilfreich, zuerst zu lernen, was SQL ist. Dies ist eine gängige Sprache, die in der Datenbankentwicklung verwendet wird.

Ihre Website verwendet es, um wichtige Informationen aus Ihrer Datenbank abzurufen und dynamische Inhalte zu generieren. Einige der SQL-Datenbanken umfassen MySQL (WordPress-Sites), MongoDB und SQL Server.

Ihre WordPress-Website verwendet eine Datenbank, um die wesentlichen Daten und Inhalte Ihrer Website wie Ihre Seiten, Beiträge und Kommentare zu verwalten. Es ordnet diese Informationen in Tabellen an.

Ansicht der Tabellen in einer WordPress-Datenbank

In Ihrer Datenbank werden Ihre sensibelsten Daten gespeichert. Daher kann jeder Angriff, der es offenlegt, schwerwiegende Folgen haben.

SQL-Injection (SQLI) ist eine Art von Hacking-Methode, mit der Cyberkriminelle WordPress-Datenbanken infiltrieren und manipulieren. Im Wesentlichen können Hacker Lücken in der Backend-Codierung von Websites ausnutzen und schädlichen Code in Dateneingabefelder einfügen.

Dieser Code ermöglicht es böswilligen Akteuren, SQL-Befehle an die Datenbankserver über Webanfragen mit Abfragezeichenfolgen, Cookies und <input>-Elementen auszuführen. Das bedeutet, dass sie Daten aus Ihrer WordPress-Datenbank erstellen, darauf zugreifen, ändern und löschen können.

Es gibt viele verschiedene Einstiegspunkte, an denen dies auftreten kann. Zu den am häufigsten verwendeten Eingabefeldern gehören Registrierungs-, Anmelde- und Kontaktformulare sowie Suchleisten und Einkaufswagen.

Angenommen, Sie haben ein Formular auf Ihrer Website, in das Besucher ihre Telefonnummer eingeben können. Cyberkriminelle können dieses Eingabefeld verwenden, um bösartigen Code einzufügen, der den Benutzernamen und das Kennwort des Administrators anfordert.

Arten von SQL-Injections

Es gibt verschiedene Arten von SQL-Injections. Eine Kategorie ist das, was als „In-Band“ bekannt ist. Dies ist die einfachste Art der Injektion und beinhaltet fehlerbasierte Angriffe.

Bei dieser Technik nutzen Hacker die Injektion, um Details über die Datenbankstruktur und Tabellennamen zu erhalten. Beispielsweise kann eine Fehlermeldung den Tabellennamen liefern, der in einer Abfrage enthalten ist. Dann kann der Hacker diese Informationen verwenden, um neue Angriffe zu erstellen.

Ein anderer Typ ist das, was als „blinde SQL-Injektion“ bezeichnet wird. In diesem Fall sendet der Angreifer verschiedene Abfragen an die Datenbank, um herauszufinden, wie die Site die Antworten analysiert. Auf diese Weise können sie Antworten auf SQL-Abfragen untersuchen, um potenzielle Schwachstellen zu identifizieren, und die Datenbank auffordern, Daten an eine externe Quelle zu übertragen.

Wie verbreitet sind SQL-Injections?

Leider sind SQL-Injection-Angriffe weit verbreitet. Tatsächlich wurden laut einem von Akamai veröffentlichten Bericht zwischen 2017 und 2019 etwa zwei Drittel der Angriffe auf Softwareanwendungen auf SQL-Injections zurückgeführt.

Ein separater Vulnerability Stats Report 2020 ergab auch, dass SQL-Injections 42 Prozent der häufigsten kritischen Schwachstellen ausmachten.

SQL-Injections sind eine Möglichkeit für jede Website, die SQL-Datenbanken verwendet, wie z. B. WordPress-basierte Websites, insbesondere solche, die Eingabefelder wie Kontaktformulare und Suchfelder haben.

Warum SQL-Injections gefährlich sind

SQL-Injections sind aus einer Reihe von Gründen gefährlich. Erstens geben sie Hackern die Möglichkeit, vertrauliche Informationen wie Ihre Anmeldedaten oder Kundendaten zu stehlen.

Hacker können mit SQL Injection nicht nur Daten beschaffen und stehlen, sondern diese Daten auch löschen. Dies bedeutet, dass Sie Gefahr laufen, private und wichtige Informationen zu verlieren, die zum Betreiben Ihrer Website verwendet werden.

Zudem drohen Reputationsschäden und Umsatzeinbußen. Eine Datenschutzverletzung kann Ihrem Unternehmen schaden und Sie könnten das Vertrauen Ihrer Kunden oder Fans verlieren.

Außerdem können diese Angriffe dazu führen, dass Google Ihre Website auf die Sperrliste setzt. Wenn Sie auf dieser Liste landen, erhalten viele potenzielle Besucher eine Warnung, dass Ihre Website unsicher ist. Die meisten dieser Leute werden umkehren und vielleicht nie wieder zurückkehren. Außerdem wird Google Ihre Suchrankings erheblich herabstufen – was zu einem großen, langfristigen Verlust an organischem Traffic führen könnte, von dem Sie sich nur schwer erholen können.

So erkennen Sie SQL-Injections

Es gibt einige Anzeichen dafür, dass Sie Opfer eines SQL-Injection-Angriffs geworden sind. Einer davon ist, dass Sie plötzlich eine Flut von E-Mails über das Kontaktformular Ihrer Website erhalten. Ein weiterer Indikator ist, wenn Sie seltsame Popups, Anzeigen und Fehlermeldungen erhalten, insbesondere wenn Sie auf scheinbar skizzenhafte Websites umgeleitet werden.

Leider sind die Anzeichen eines SQL-Injection-Angriffs nicht immer so offensichtlich. Wie wir bereits erwähnt haben, wollen Hacker manchmal Injections verwenden, um Informationen zu stehlen, anstatt Ihre Website zu beschädigen. Daher verwenden sie möglicherweise subtilere Methoden, die die Erkennung erschweren.

SQL-Injection-Erkennungs- und Scan-Tools

Der einzige Weg, um sicher zu wissen, ob Sie angegriffen wurden, besteht darin, einen Scan auf Ihrer Website durchzuführen. Glücklicherweise gibt es eine Vielzahl von Online-Tools, mit denen Sie SQL-Injections auf Ihrer WordPress-Site erkennen können.

Beispielsweise können Sie Pentest Tools verwenden, um zwei kostenlose Scans Ihrer Website durchzuführen.

Homepage der PenTest-Tools

Es gibt zwei Optionen: einen leichten Scan oder einen vollständigen Scan. Für letzteres müssen Sie auf einen kostenpflichtigen Plan upgraden. Geben Sie einfach die URL Ihrer Website ein und klicken Sie auf die Schaltfläche Ziel scannen. Wenn Schwachstellen vorhanden sind, werden diese beim Scan aufgedeckt.

So entfernen Sie SQL-Injektionen von Ihrer WordPress-Website

1. Stellen Sie eine Sicherung wieder her

Ihre beste Option zum Entfernen von SQL-Injektionen besteht darin, ein Backup Ihrer Website wiederherzustellen. Wenn Sie Jetpack Backup verwenden, müssen Sie lediglich das Aktivitätsprotokoll verwenden, um festzustellen, wann der Angriff stattgefunden hat, und dann ein Backup von vor diesem Zeitpunkt wiederherstellen. Ihre Website wird in den Zustand zurückversetzt, in dem sie sich vor dem Hack befand.

Es ist jedoch wichtig zu beachten, dass SQL-Injections in einigen Fällen nach und nach im Laufe der Zeit durchgeführt werden. Möglicherweise müssen Sie ziemlich weit zurückgehen, um ein sauberes Backup zu finden, was zu Datenverlust führen kann.

Und obwohl das Wiederherstellen eines Backups Ihre Website möglicherweise wieder zum Laufen bringt, müssen Sie sich dennoch mit den Folgen des Verstoßes auseinandersetzen, wenn vertrauliche Daten gestohlen wurden.

2. Verwenden Sie einen Website-Reinigungsdienst

Eine weitere Option besteht darin, einen Website-Reinigungsdienst eines Drittanbieters zu verwenden, um Ihre Website zu scannen und alle SQL-Einschleusungen zu beheben. Sucuri ist eine Option – reichen Sie einfach Ihre Website bei ihrem Team ein und lassen Sie sie sich um alles andere kümmern. Da sie Experten sind, können sie Malware effektiver aus Ihrer Datenbank entfernen als der durchschnittliche Entwickler.

3. Entfernen Sie die Injektionen selbst

Wenn Sie Erfahrung mit der Verwaltung und Arbeit mit MySQL haben, können Sie schließlich Ihre Datenbank manuell bereinigen. Beachten Sie jedoch, dass dies eine fortgeschrittene Technik ist und wenn Sie nicht wissen, was Sie tun, können Änderungen zu Problemen führen.

So verhindern Sie zukünftig SQL-Injections

Es gibt keine Möglichkeit, sicherzustellen, dass Ihre Website jemals zu 100 Prozent sicher ist, aber es gibt Maßnahmen, die Sie ergreifen können, um Ihr Angriffsrisiko zu minimieren. Werfen wir einen Blick auf acht Methoden, mit denen Sie SQL-Injections in WordPress verhindern können.

1. Validieren (oder bereinigen) Sie Ihre Daten

Der Schlüssel zur Verhinderung von SQL-Injections in WordPress besteht darin, jedes Eingabefeld zu sichern, das zur Eingabe von Daten oder Inhalten auf Ihrer Website verwendet werden kann. Dazu gehören Kommentarbereiche und Formulare. Daher ist es wichtig, die in diese Felder eingegebenen Daten bei der Übermittlung zu validieren und zu bereinigen.

Mit der Eingabevalidierung und -bereinigung können Sie die von Benutzern übermittelten Befehle überprüfen. Mit der Bereinigung können Sie sogar die Befehle ändern. Dies ist eine effektive Methode, um sicherzustellen, dass diese Befehle keinen schädlichen Code oder Zeichenfolgen enthalten.

Die Validierung stellt sicher, dass die in ein Formular eingegebenen Informationen dem angeforderten Format entsprechen, bevor die Anforderung verarbeitet wird. Wenn Sie beispielsweise ein Eingabefeld für eine E-Mail-Adresse hätten, würden die Daten nicht validiert, wenn das Symbol „@“ nicht vorhanden wäre.

Der einfachste Weg, eine Validierung für Ihre Formulardaten zu erstellen, besteht darin, Regeln für Ihre Formulare festzulegen. Der Vorgang dafür hängt von dem spezifischen Plugin ab, das Sie verwenden. Wenn Sie beispielsweise die Premium-Version von Formidable Forms verwenden, können Sie Ihr eigenes benutzerdefiniertes Eingabemaskenformat hinzufügen für Textfelder.

Hinzufügen von Validierung zu Formularfeldern in WordPress

Das Hinzufügen von Eingabeformatanforderungen kann das Risiko einer SQL-Injektion begrenzen. Die Bereinigung kann dazu beitragen, dass die eingegebenen Daten nach der Validierung sicher verarbeitet werden können.

Die meisten WordPress-Formular-Plugins bereinigen Formulardaten automatisch. Sie können jedoch zusätzliche Sicherheitsmaßnahmen hinzufügen. Erwägen Sie anstelle von offenen Antworten die Verwendung von Dropdown-Menüs und Multiple-Choice-Optionen. Sie können auch die Verwendung von Sonderzeichen einschränken.

2. Installieren Sie ein WordPress-Sicherheitstool

Das WordPress-Sicherheits-Plugin von Jetpack kann Ihre Website auf Schwachstellen überwachen, die zu SQL-Injektionen führen könnten. Dies gibt Ihnen die Möglichkeit, sie zu beheben, bevor jemand sie ausnutzt.

Mit der Ausfallzeitüberwachung wissen Sie, sobald Ihre Website ausfällt, sodass Sie schnell reagieren können. Und mit Echtzeit-Backups können Sie Ihre Website vollständig wiederherstellen.

Es bietet auch Sicherheitstools wie:

  • Malware-Scannen für Ihre WordPress-Dateien, zusammen mit Ein-Klick-Korrekturen für die meisten Probleme
  • Anti-Spam-Lösungen zum Schutz Ihrer Kommentar- und Kontaktformulare
  • Schutz vor Brute-Force-Angriffen, um Hacker fernzuhalten

3. Halten Sie Ihre Website und Datenbank immer auf dem neuesten Stand

Die Verwendung veralteter Software und Tools kann eine ganze Reihe von Schwachstellen auf Ihrer Website einführen, die Hacker ausnutzen können. Aus diesem Grund ist es wichtig sicherzustellen, dass Sie Ihre WordPress-Website immer auf dem neuesten Stand halten.

Derzeit verwendet fast die Hälfte der WordPress-Installationen nicht die aktuellste Version. Daher solltest du erwägen, automatische Updates zu aktivieren, um sicherzustellen, dass du immer die neueste Version von WordPress verwendest.

Um dies für Core-Updates zu tun, können Sie zu navigieren wp-config.php- Datei im Stammverzeichnis Ihrer Website. Kopieren Sie als Nächstes das folgende Code-Snippet und fügen Sie es in die Datei ein:

 define( 'WP_AUTO_UPDATE_CORE', true );

Sie können automatische Updates für Ihre Plugins aktivieren, indem Sie zu den Plugins navigieren Bildschirm von Ihrem Admin-Dashboard aus. Klicken Sie dann auf Aktivieren Sie Automatische Updates in der Spalte ganz rechts.

Auto-Updates in WordPress aktivieren

Um Schwachstellen zu minimieren, empfehlen wir, alle nicht verwendeten Plugins oder Designs von Ihrer Website zu entfernen. Es ist auch ratsam, Ihre SQL-Version zu aktualisieren. Wenn Sie cPanel für Ihr Hosting-Kontrollfeld verwenden, können Sie Ihre MySQL-Software von Ihrem Dashboard aus aktualisieren. Abhängig von Ihrem Hosting-Provider können Sie möglicherweise automatische SQL-Updates aktivieren.

4. Ändern Sie Ihr WordPress-Datenbankpräfix

Standardmäßig verwendet das CMS bei jeder Installation von WordPress „wp_“ als Datenbankpräfix. Wir empfehlen dringend, dies in etwas anderes zu ändern, da Hacker damit Schwachstellen über SQL-Injection ausnutzen können.

Bevor Sie beginnen, sollten Sie Ihre Datenbank sichern. Wenn etwas schief geht, haben Sie auf diese Weise eine sichere Version, die Sie wiederherstellen können.

Verbinden Sie sich als Nächstes über den FTP-Client oder den Dateimanager Ihres Hosts mit Ihrer Site und durchsuchen Sie die Datei wp-config.php , die sich im Stammverzeichnis Ihrer Site befindet. Suchen Sie in der Datei nach der Zeile table_prefix und ändern Sie dann „wp_“ in etwas anderes:

 $table_prefix  = 'wp_a12345_';

Wenn Sie fertig sind, speichern Sie die Datei. Das ist es!

5. Verwenden Sie eine Firewall

Eine weitere Strategie zum Schutz vor SQL-Injection ist die Installation einer Firewall. Dies ist ein Netzwerksicherheitssystem, das Ihnen hilft, die auf Ihrer WordPress-Site eingehenden Daten zu überwachen und zu kontrollieren. Dadurch kann bösartiger Code, einschließlich von SQL-Injection-Angriffen, abgefangen und herausgefiltert werden.

Es gibt eine Vielzahl von WordPress-Firewall-Tools, die Sie verwenden können. Einige beliebte Optionen sind Wordfence und Sucuri. Diese Tools hindern Angreifer nicht daran, Befehle zu senden, aber sie können ihnen dabei helfen, den tatsächlichen Zugriff auf Ihre Website zu blockieren.

6. Blenden Sie die Version von WordPress aus, die Sie verwenden

Die öffentlich zugängliche Version Ihrer WordPress-Site kann es Angreifern erleichtern, bekannte Schwachstellen auszunutzen, da jede Version mit einem eigenen Satz geliefert wird. Um Ihre Website zu schützen, empfehlen wir daher, die von Ihnen verwendete Version auszublenden.

Das geht schnell und einfach. Kopieren Sie einfach das folgende Code-Snippet, um loszulegen:

 remove_action('wp_head', 'wp_generator');

Navigieren Sie als Nächstes zur Datei functions.php Ihres aktuellen WordPress-Themes. Sie können dies direkt über den Theme-Editor in WordPress, über einen FTP-Client oder über den Dateimanager Ihres Hosts tun. Fügen Sie den Code in die Datei ein und speichern Sie Ihre Änderungen.

7. Beseitigen Sie unnötige Datenbankfunktionen

Je mehr Funktionalität Ihre WordPress-Datenbank hat, desto anfälliger ist sie für Angriffe. Um das Risiko einer SQL-Injection zu minimieren, sollten Sie erwägen, Ihre Datenbank zu normalisieren und unnötige Funktionen und Inhalte zu entfernen.

Kurz gesagt bezieht sich die Datenbanknormalisierung auf den Prozess der Organisation Ihrer Daten. Der Zweck dabei ist, alle redundanten Daten in Ihrer Datenbank zu eliminieren und sicherzustellen, dass alle Datenabhängigkeiten sinnvoll sind. Sie können dies tun, indem Sie Ihre Datenbank in die erste Normalform versetzen.

Wenn Sie eine anfängerfreundlichere Option zum Bereinigen Ihrer WordPress-Datenbank wünschen, können Sie ein Plugin verwenden. Es gibt eine Handvoll solider Optionen zur Auswahl, wie WP-Optimize.

Dieses Freemium-Plugin hilft Ihnen, Ihre Datenbank zu bereinigen, ohne manuell SQL-Befehle über phpMyAdmin ausführen zu müssen. Stattdessen können Sie damit Ihre Datenbank direkt von Ihrem WordPress-Dashboard aus optimieren.

Optimierungsoptionen für Datenbanktabellen

Es entfernt alle unnötigen Informationen aus Ihrer Datenbank, einschließlich Papierkorb und nicht genehmigter Kommentare. Mit WP-Optimize können Sie auch Ihre MySQL-Datenbanktabellen mit einem einzigen Klick defragmentieren.

8. Beschränken Sie den Benutzerzugriff und die Berechtigungen

Sie können WordPress-Benutzern auf Ihrer Website verschiedene Rollen zuweisen. Diese können von einem Abonnenten bis zu einem Administrator reichen. Mit jeder Rolle können Sie steuern, wie viel Zugriff gewährt wird und welche „Fähigkeiten“ sie erhalten.

Um Ihre Sicherheit zu erhöhen, ist es am besten, die Anzahl der Rollen mit vollständigem Administratorzugriff und Benutzerberechtigungen zu begrenzen. Je weniger Personen Daten ändern und eingeben können, desto geringer ist die Wahrscheinlichkeit, dass Sie einem SQL-Injection-Angriff ausgesetzt sind.

Um die Benutzerrollen und -berechtigungen in WordPress anzupassen, können Sie zu Benutzer → Alle Benutzer navigieren.

WordPress-Benutzer im Dashboard

Klicken Sie dann auf den Link Bearbeiten unter dem Namen des Benutzers, für den Sie den Zugriff und die Berechtigungen einschränken möchten. Auf dem nächsten Bildschirm können Sie ihre Rolle über das Dropdown-Rollenmenü ändern.

Bei der Verwaltung Ihrer WordPress-Benutzerrollen empfehlen wir auch, alle Konten zu löschen, die nicht mehr verwendet werden. Das Eliminieren veralteter Rollen kann Ihre Schwachstellen minimieren.

9. Vermeiden Sie die Verwendung von nulled Plugins

Nulled-Plugins sind Premium-Tools, die gestohlen wurden und kostenlos angeboten werden. Auch wenn sie wie viel erscheinen mögen, schaden Sie nicht nur dem ursprünglichen Entwickler, indem Sie ihn nicht für seine Arbeit bezahlen, sondern Sie riskieren auch einen Hack.

Nulled Plugins sind sehr oft voll mit bösartigem Code und Backdoors, die Hackern einen einfachen Einstieg in Ihre Website ermöglichen. Vermeiden Sie sie um jeden Preis und verwenden Sie stattdessen Plugins aus seriösen Quellen.

Schützen Sie Ihre WordPress-Site vor SQL-Injektionen

Um Ihre Website und Ihre Daten vor der Bedrohung durch Cyberkriminelle zu schützen, ist es wichtig, einige der gängigsten Methoden zu kennen, die verwendet werden, um Zugriff auf Ihre Website zu erhalten. Wenn es darum geht, die Sicherheit Ihrer Datenbank zu stärken, bedeutet dies, dass Sie sich mit SQL-Injections auskennen.

Wie wir in diesem Beitrag besprochen haben, kann eine SQL-Injektion schädliche Auswirkungen auf Ihre WordPress-Site haben, von der Offenlegung sensibler Daten bis hin zum Verlust von Inhalten und Einnahmen. Glücklicherweise gibt es eine Handvoll Schritte, die Sie unternehmen können, um Injection-Angriffe zu erkennen, zu entfernen und zu verhindern.

Keine Website ist jemals absolut sicher, aber wenn Sie die oben genannten Tipps und Techniken befolgen, können Sie Ihre Chancen, Opfer von SQL-Injektionen zu werden, erheblich verringern.