WordPress-Sicherheit als Prozess

Veröffentlicht: 2022-03-10
Kurze Zusammenfassung ↬ Letztes Jahr war WordPress für 83 % der infizierten Content-Management-Sites verantwortlich. Stellen Sie sicher, dass Sie nicht zu diesen Infektionen beitragen, und erfahren Sie, wie Sie WordPress sicher verwalten.

( Dieser Artikel wurde freundlicherweise von Sucuri gesponsert .) WordPress-Sicherheit hat keinen guten Ruf. Mehr als 70 % aller WordPress-Sites weisen laut Untersuchungen von Alexa auf über 40.000 WordPress-Sites irgendeine Art von Sicherheitslücke auf. Wenn Sie WordPress-Themes oder Plugins entwickeln – oder WordPress für Ihre Websites verwenden – sollte Ihnen diese Zahl Angst machen.

Sie können eine Menge tun, um sicherzustellen, dass Sie nicht zu den 70 % gehören, aber es erfordert mehr Arbeit, als nur ein Plugin zu installieren oder einen String zu maskieren. Viele Ratschläge in diesem Artikel stammen aus Sucuris Leitfaden zur WordPress-Sicherheit und jahrelanger persönlicher Erfahrung.

Ist WordPress unsicher?

WordPress hat den größten Marktanteil unter den Content-Management-Systemen und einen Marktanteil von 30 % unter den 10 Millionen beliebtesten Websites im Internet. Diese Art von Erfolg macht es zu einem großen Ziel für Hacks. WordPress ist nicht weniger sicher als andere Content-Management-Systeme – es ist nur erfolgreicher.

Schwachstellen im WordPress-Kern sind für weniger als 10 % aller WordPress-Hacks verantwortlich. Die meisten davon stammen von veralteten WordPress-Installationen. Die Anzahl der Hacks, die auf tatsächliche Sicherheitslücken in aktuellen Versionen (auch bekannt als Zero-Day-Exploits) im WordPress-Kern passieren, macht einen winzigen Prozentsatz aller Hacks aus.

Der Rest der infizierten Seiten wurde durch Plugins, Themes, Hosting und Benutzer verursacht. Und Sie als Entwickler von WordPress-Websites haben die Kontrolle über all diese. Wenn Ihnen das nach einem großen Aufwand erscheint, dann kann ich den Agenturplan von Sucuri empfehlen. Ansonsten lass uns herausfinden, wie wir selbst mit der WordPress-Sicherheit umgehen!

Wer greift dich an und warum?

Lassen Sie uns zuerst mit einem Mythos aufräumen: Eine kleine WordPress-Website ist immer noch ein attraktives Ziel für Hacker. Angriffe auf persönlicher Basis sind sehr selten. Die meisten gehackten WordPress-Websites werden automatisch entweder von einem Bot oder einem Botnet kompromittiert.

Bots sind Computerprogramme, die ständig nach Websites suchen, die sie hacken können. Es ist ihnen egal, wer du bist; Sie suchen nur nach einer Schwäche in Ihrer Abwehr. Ein Botnetz kombiniert die Rechenleistung vieler Bots, um größere Aufgaben zu bewältigen.

Hacker suchen in erster Linie nach einem Weg in Ihren Server, damit sie die Rechenleistung Ihres Servers nutzen und sie auf ein anderes Ziel oder Ziel loslassen können. Hacker wollen Ihren Server aus den folgenden Gründen.

Versenden von Spam

Spam macht etwa 60 % aller E-Mails aus und muss von irgendwo her gesendet werden. Viele Hacker wollen sich über ein fehlerhaftes Plugin oder eine veraltete Version des WordPress-Kerns Zugang zu Ihrem Server verschaffen, um Ihren Server in eine Spam-Maschine zu verwandeln.

Angriff auf andere Websites

Distributed Denial-of-Service-Angriffe nutzen viele Computer, um eine Website mit so viel Verkehr zu überfluten, dass sie nicht mehr mithalten können. Diese Angriffe sind sehr schwer zu entschärfen, insbesondere wenn sie richtig ausgeführt werden. Hacker, die in Ihren Server einbrechen, können ihn einem Pool von Servern hinzufügen, um Websites anzugreifen.

Ressourcen stehlen

Das Schürfen von Kryptowährung ist derzeit sehr beliebt, erfordert jedoch viel Rechenleistung. Hacker, die nicht viel Geld für eine Serverfarm ausgeben wollen, brechen in ungeschützte WordPress-Websites ein und verschaffen sich Zugang zu Servern oder zu den Besuchern Ihrer Websites und stehlen Rechenleistung.

Steigende SEO-Ergebnisse

Ein besonders beliebter Hack für WordPress besteht darin, sich Zugriff auf seine Datenbank zu verschaffen und unter jedem Beitrag eine Reihe von (versteckten) Texten hinzuzufügen, die auf eine andere Website verlinken. Es ist eine wirklich schnelle Möglichkeit, den eigenen SEO-Score zu verbessern, obwohl Google in Bezug auf dieses Verhalten wachsamer wird und die Anzahl der Blacklists zunimmt.

### Datendiebstahl

Daten sind wertvoll, insbesondere wenn sie mit Benutzerprofilen und E-Commerce-Informationen verknüpft sind. An diese Daten zu kommen und sie zu verkaufen, kann einem Angreifer einen stattlichen Gewinn einbringen.

Warum ist Sicherheit wichtig?

Abgesehen davon, dass Kriminelle nicht zufrieden sind, gibt es viele Gründe, warum Ihre Website standardmäßig sicher sein sollte. Nachdem ich selbst viele WordPress-Hacks bereinigt und behandelt habe, kann ich mit Sicherheit sagen, dass sie nie zu einem günstigen Zeitpunkt auftreten. Die Reinigung kann Stunden dauern und kostet entweder Sie oder Ihren Kunden Geld.

Um eine gehackte WordPress-Website wieder zum Laufen zu bringen, müssen Sie jeden Code von Drittanbietern (einschließlich des WordPress-Kerns) entfernen und ersetzen. durchkämmen Sie Ihren eigenen Code Zeile für Zeile und alle anderen Ordner auf dem Server, um sicherzustellen, dass sie noch sauber sind; überprüfen, ob sich unbefugte Benutzer Zugang verschafft haben; und ersetzen Sie alle Passwörter in WordPress, auf Ihrem Server und in Ihrer Datenbank.

Viele Dienste können eine WordPress-Website für Sie bereinigen, aber Prävention ist auf lange Sicht so viel besser.

Abgesehen von den Kosten für die Bereinigung können Hacks Sie auch viel an verpassten Verkäufen oder Leads kosten. Hacks bringen Sie in Suchrankings nach unten, was zu weniger Besuchern und weniger Conversions führt.

Mehr als die finanziellen Kosten, gehackt zu werden, schadet Ihrem Ruf. Besucher kommen auf Ihre Website, weil sie Ihnen vertrauen. Hackerangriffe schaden Ihrem Ruf, und die Reparatur dauert lange.

Es besteht auch die Möglichkeit rechtlicher Probleme, insbesondere wenn Sie Kunden in der EU haben, wo die DSGVO-Gesetzgebung im Sommer 2018 in Kraft tritt. Diese neue Gesetzgebung beinhaltet eine hohe Geldstrafe für Datenschutzverletzungen, die nicht ordnungsgemäß gehandhabt werden.

Geld, Reputation und Rechtsprobleme: Schlechte Sicherheit kann Sie viel Geld kosten. Etwas Zeit zu investieren, um Ihre Website, Ihren Code und Ihr Team mit einer Sicherheitseinstellung einzurichten, wird sich definitiv auszahlen.

Lassen Sie uns herausfinden, wie wir all diese Gemeinheiten verhindern können.

Die CIA-Triade

Die CIA-Triade ist ein Grundgerüst für jedes digitale Sicherheitsprojekt. Es steht für Vertraulichkeit, Integrität und Verfügbarkeit. CIA ist eine Reihe von Regeln, die den Informationszugriff auf die richtigen Parteien beschränken, sicherstellen, dass die Informationen vertrauenswürdig und genau sind, und einen zuverlässigen Zugriff auf diese Informationen garantieren.

Für WordPress läuft das CIA-Framework auf Folgendes hinaus.

Vertraulichkeit

Stellen Sie sicher, dass angemeldeten Benutzern die richtigen Rollen zugewiesen sind und dass ihre Fähigkeiten in Schach gehalten werden. Gewähren Sie Benutzern nur den erforderlichen Mindestzugriff und stellen Sie sicher, dass Administratorinformationen nicht an die falsche Partei gelangen. Sie können dies tun, indem Sie den Admin-Bereich von WordPress härten und vorsichtig mit Benutzernamen und Anmeldeinformationen umgehen.

Integrität

Präsentieren Sie genaue Informationen auf Ihrer Website und stellen Sie sicher, dass Benutzerinteraktionen auf Ihrer Website korrekt erfolgen.

Überprüfen Sie beim Akzeptieren von Anfragen sowohl im Front- als auch im Backend immer, ob die Absicht mit der tatsächlichen Aktion übereinstimmt. Wenn Daten gepostet werden, filtern Sie die Daten in Ihrem Code immer nach schädlichen Inhalten, indem Sie Bereinigungen und Escapes verwenden. Stellen Sie sicher, dass Spam entfernt wird, indem Sie einen Spamschutzdienst wie Akismet verwenden.

Verfügbarkeit

Stellen Sie sicher, dass Ihr WordPress, Ihre Plugins und Themes auf dem neuesten Stand sind und auf einem zuverlässigen (vorzugsweise verwalteten) WordPress-Host gehostet werden. Tägliche automatisierte Backups tragen auch dazu bei, dass Ihre Website für die Öffentlichkeit verfügbar bleibt.

Alle drei Elemente stützen sich aufeinander ab. Die Codeintegrität funktioniert nicht von alleine, wenn das vertrauliche Passwort eines Benutzers leicht gestohlen oder erraten werden kann. Alle Aspekte sind wichtig für eine solide und sichere Plattform.

Sicherheit ist harte Arbeit. Abgesehen von der Arbeit, die im Code erledigt werden kann, gibt es in diesem Framework ein riesiges menschliches Element. Sicherheit ist ein ständiger Prozess; Es kann nicht durch ein einzelnes Plugin gelöst werden.

Teil 1: Integrität – Vertrauen Sie nichts

Überprüfen Sie die Absicht von Benutzeraktionen und die Integrität der von Ihnen verarbeiteten Daten. Werfen Sie Ihren inneren Hippie aus der Tür. Nichts kann online vertraut werden, also überprüfen Sie alles, was Sie tun, auf mögliche böswillige Absichten.

Datenvalidierung und -bereinigung

WordPress ist hervorragend im Umgang mit Daten. Es stellt sicher, dass jede Interaktion validiert und jedes Datenbit bereinigt wird, aber das ist nur im WordPress-Kern. Wenn Sie Ihr eigenes Plugin oder Design erstellen oder auch nur ein Stück Code eines Drittanbieters überprüfen, ist es wichtig zu wissen, wie das geht.

 //Cast our variable to a string, and sanitize it. update_post_meta( $post->ID, 'some-meta', sanitize_text_field( (string)$_POST['some-meta'] ) ); //Make sure our variable is an absolute integer. update_post_meta( $post->ID, 'some-int', absint( $_POST['int'] ) );

In diesem Beispiel haben wir mit update_post_meta zwei Datenelemente zu einem WordPress-Beitrag hinzugefügt. Die erste ist eine Zeichenfolge; Also wandeln wir es als String in PHP um und entfernen unerwünschte Zeichen und Tags mit sanitize_text_field , einer der vielen Bereinigungsfunktionen von WordPress.

Wir haben diesem Beitrag auch eine Ganzzahl hinzugefügt und Absint verwendet, um sicherzustellen, dass dies eine absolute (und nicht negative) Ganzzahl ist.

Die Verwendung von WordPress-Kernfunktionen wie update_post_meta ist eine bessere Idee als die direkte Verwendung der WordPress-Datenbank. Denn WordPress prüft alles, was in der Datenbank gespeichert werden muss, auf sogenannte SQL-Injections. Bei einem SQL-Injection-Angriff wird bösartiger SQL-Code über die Formulare auf Ihrer Website ausgeführt. Dieser Code manipuliert die Datenbank, um beispielsweise alles zu zerstören, Benutzerdaten preiszugeben oder falsche Administratorkonten zu erstellen.

Wenn Sie jemals mit einer benutzerdefinierten Tabelle arbeiten oder eine komplizierte Abfrage in WordPress durchführen müssen, verwenden Sie die native WPDB-Klasse und verwenden Sie die prepare für alle Ihre Abfragen, um SQL-Injection-Angriffe zu verhindern:

 $tableName = $wpdb->prefix . “my_table”; $sql = $wpdb->prepare( “SELECT * FROM %s”, $tableName ); $results = $wpdb->get_results( $sql );

$wpdb->prepare geht jede Variable durch, um sicherzustellen, dass es keine Chance für einen SQL-Injection-Angriff gibt.

Flucht

Escaping-Output ist genauso wichtig wie das Bereinigen des Inputs. Es ist wichtig, Daten vor dem Speichern zu validieren, aber Sie können nicht zu 100 % sicher sein, dass sie noch sicher sind. Vertraue nichts. WordPress verwendet viele Filter, um es Plugins und Themes zu ermöglichen, Daten im Handumdrehen zu ändern, daher besteht eine gute Chance, dass Ihre Daten auch durch andere Plugins geparst werden. Es ist eine kluge Sache, Daten zu maskieren, bevor Sie sie zu Ihrem Design oder Plugin hinzufügen.

Escaping dient hauptsächlich dazu, Cross-Site-Scripting-Angriffe (XSS) zu verhindern. XSS-Angriffe fügen schädlichen Code in das Frontend Ihrer Website ein. Ein zusätzlicher Vorteil des Escape-Daten ist, dass Sie sicher sein können, dass Ihr Markup danach immer noch gültig ist.

WordPress hat viele Escape-Funktionen. Hier ist ein einfaches Beispiel:

 <a href=“<?php echo esc_url( $url );?>” title=“<?php echo esc_attr( $title );?>”><?php echo esc_html( $title );?></a>

Entkomme so spät wie möglich. So haben Sie das letzte Wort über Ihre Daten.

Anfragen sichern

WordPress-Admin-Anfragen sind bereits ziemlich sicher, wenn Sie SSL aktiviert haben und wenn Sie einen anständigen Host haben, aber einige Schwachstellen bestehen immer noch. Sie müssen die Absicht eines Benutzers überprüfen und bestätigen, dass die eingehende Anfrage vom tatsächlich angemeldeten Benutzer ausgeführt wurde.

WordPress validiert die Absicht mit Nonces.. Eine Nonce (oder „nur einmal verwendete Zahl“) ist nicht wirklich eine genaue Beschreibung dieser API in WordPress. Es verwendet nicht nur Zahlen, sondern ähnelt eher einem Cross-Site Request Forgery (CSRF)-Token, das Sie in jedem modernen Web-Framework finden. Diese Token stellen sicher, dass Hacker Anfragen nicht wiederholen können. Es ist viel mehr als nur eine Nonce, aber WordPress mag Abwärtskompatibilität, also blieb der Name hängen.

Nonces werden zusammen mit jeder gefährdeten Anfrage eines Benutzers gesendet. Sie werden an URLs und Formulare angehängt und müssen immer auf der Empfängerseite überprüft werden, bevor die Anfrage ausgeführt wird. Sie können einem Formular oder einer URL eine Nonce hinzufügen. Hier ist ein Beispiel, das in einem Formular verwendet wird:

 <form method= “post”> <!-- Add a nonce field: --> <?php wp_nonce_field( 'post_custom_form' );?> <!-- other fields: → ... </form>

In diesem Fall verwenden wir nur die einfache wp_nonce_field() , die zwei versteckte Felder für uns generiert, die so aussehen:

 <input type="hidden" name="_wpnonce" value="e558d2674e" /> <input type="hidden" name="_wp_http_referer" value="/wp-admin/post.php?post=2&action=edit" />

Das erste Feld prüft die Absicht, indem es einen generierten Code mit der 'post_custom_form' , die wir an die Funktion übergeben haben. Das zweite Feld fügt einen Referrer hinzu, um zu überprüfen, ob die Anfrage aus der WordPress-Installation stammt.

Bevor Sie Ihre Aufgabe am anderen Ende des Formulars oder der URL bearbeiten, überprüfen Sie die Nonce und ihre Gültigkeit mit wp_verify_nonce :

 if( wp_verify_nonce( $_REQUEST['_wpnonce'], 'post_custom_form' ) == false ){ wp_die( “Nonce isn\'t valid” ); }

Hier überprüfen wir die Nonce mit unserem Aktionsnamen, und wenn sie nicht übereinstimmt, stoppen wir die Verarbeitung des Formulars.

Code von Drittanbietern

Plugins und Themes von Drittanbietern sind eine Brutstätte für Hacks. Sie sind auch die härteste Nuss, die es zu knacken gilt, wenn es darum geht, die Sicherheit Ihrer Website zu gewährleisten.

Die meisten WordPress-Hacks werden durch Plugins, Themes und veraltete Kopien von WordPress verursacht . Keine Software ist 100 % sicher, aber viele Plugins und Themes da draußen wurden entweder seit einiger Zeit nicht mehr von ihren Entwicklern aktualisiert oder waren von Anfang an nicht sicher.

Weniger Code bedeutet weniger zu hacken. Bevor Sie also ein weiteres Plugin installieren, fragen Sie sich, ob Sie es wirklich brauchen. Gibt es eine andere Möglichkeit, dieses Problem zu lösen?

Wenn Sie sicher sind, dass Sie ein Plugin oder ein Design benötigen, dann beurteilen Sie es sorgfältig. Sehen Sie sich die Bewertung, das Datum der „letzten Aktualisierung“ und die erforderliche PHP-Version an, wenn Sie durch das Plugin-Verzeichnis von WordPress blättern. Wenn Sie gefunden haben, wonach Sie suchen, und alles zu funktionieren scheint, suchen Sie in einem vertrauenswürdigen Sicherheitsblog wie Sucuri oder WordFence nach Erwähnungen darüber.

Eine andere Möglichkeit besteht darin, den Code zu scannen und sicherzustellen, dass er die richtigen Nonces, Hygiene und Flucht enthält; Dies sind normalerweise Anzeichen für gut geschriebenen und sicheren Code. Sie müssen weder PHP kennen noch eine vollständige Codeüberprüfung durchführen. Eine einfache und schnelle Möglichkeit, die ordnungsgemäße Verwendung der WordPress-Sicherheitsfunktionen zu überprüfen, besteht darin, den Code des Plugins nach diesen Zeichenfolgen zu durchsuchen:

  • esc_attr
  • esc_html
  • wp_nonce_field
  • wp_nonce_url
  • sanitize_text_field
  • $wpdb->prepare

Ein Plugin könnte immer noch sicher sein, wenn es nicht alle diese Zeichenfolgen enthält, aber wenn keine oder nur eine geringe Anzahl dieser Zeichenfolgen gefunden wird, ist dies ein Warnsignal. Wenn Sie eine Schwachstelle finden, teilen Sie sie dem Ersteller bitte privat mit und geben Sie ihm Zeit, sie zu beheben.

Mit Initiativen wie wpvulndb wird es einfacher, den Überblick über Schwachstellen im WordPress-Plug-in-Bereich zu behalten.

Hinweis: Einige Themes da draußen bündeln Versionen von Plugins mit ihrem Code. Dies ist ein Symptom dafür, dass WordPress kein großartiges Out-of-the-Box-Abhängigkeitsmanagement hat, aber es ist auch ein Zeichen für ein sehr schlecht geschriebenes Thema. Vermeiden Sie diese Designs immer, da sie Codebasen enthalten, die nicht aktualisiert werden können.

Themes und Plugins enthalten selten Code, der nur von einem Entwickler geschrieben wurde. Composer und NPM haben es so viel einfacher gemacht, sich auf andere Bibliotheken zu verlassen, dass es zu einem beliebten Angriffsvektor geworden ist. Wenn Sie ein fertiges WordPress-Theme oder -Plugin herunterladen, ist dies wirklich kein Problem, aber wenn Sie mit Tools arbeiten, die Composer oder NPM verwenden, schadet es nicht, ihre Abhängigkeiten zu überprüfen. Sie können Composer-Abhängigkeiten mit einem kostenlosen Befehlszeilenschnittstellen-Tool (CLI) von SensioLabs überprüfen. Ein Dienst wie Snyk (den Sie kostenlos nutzen können, aber auch über Premium-Optionen verfügen) ermöglicht es Ihnen, alle Abhängigkeiten in Ihrem Projekt zu überprüfen.

Teil 2: Verfügbarkeit: Halten Sie es einfach

Ihr Hauptziel ist es, Ihre Website ohne Unterbrechungen online zu halten. Selbst mit erstklassiger Sicherheit können Sie immer noch in Schwierigkeiten geraten. Wenn das passiert, wird Ihnen ein großartiges Backup große Kopfschmerzen ersparen.

Aktualisierung

Open Source kann ohne Updates nicht existieren. Die meisten Angriffe auf WordPress-Websites erfolgen über veraltete Versionen der Kernsoftware oder Plugins. Sicherheitsupdates für den Kern von WordPress werden jetzt automatisch behandelt (es sei denn, Sie haben dies deaktiviert, Sie Monster!), aber Sicherheitsupdates in Plugins sind eine andere Geschichte.

Bei beliebten, vertrauenswürdigen Plugins ist die Aktualisierung normalerweise sicher, aber alle Plugins sollten getestet werden, bevor sie auf Ihrer Website live gehen. Tools wie WP CLI machen das Aktualisieren alles viel einfacher. Der führende WordPress-Entwickler Mark Jaquith hatte einen ausgezeichneten Blogbeitrag über die automatische, aber schrittweise Aktualisierung aller Plugins, damit Sie mögliche Fehler herausfiltern können.

Benutzer, Rollen und Fähigkeiten

„Verfügbarkeit“ in der CIA-Triade hat damit zu tun, Informationen in die richtigen Hände zu bekommen. Unsere Hauptpriorität dabei ist die Einschränkung der Möglichkeiten Ihrer Back-End-Benutzer. Geben Sie nicht jedem ein Administratorkonto.

Das Admin-Konto in WordPress ist ungewöhnlich leistungsfähig. Es gibt sogar eine Option in Vanilla WordPress, um Ihre komplette Codebasis innerhalb des WordPress-Administratorkontos zu ändern. (Wenn dies neu für Sie ist und Sie es nicht deaktiviert haben, tun Sie dies bitte.)

Das Rollen- und Fähigkeitensystem in WordPress ist leistungsfähig und lässt sich sehr einfach im Code ändern. Bei der Arbeit mit WordPress erstelle ich viele neue Rollen. Der Hauptvorteil davon ist, dass Sie die volle Kontrolle darüber haben, auf welche Teile des Systems verschiedene Benutzer zugreifen können, aber ein weiterer großer Vorteil ist, dass es verhindert, dass Code von Drittanbietern die Standardfunktionen des WordPress-Kerns ändert.

Email

WordPress verarbeitet E-Mails normalerweise über den Server, auf dem es läuft, aber das macht alle Ihre E-Mails vollständig abhängig von dem Server, auf dem es läuft. Verhindern Sie, dass Ihre E-Mails abgefangen und als Spam angesehen werden, indem Sie einen SMTP-Dienst verwenden. Es stehen viele Plugin-Optionen zur Verfügung, um sicherzustellen, dass alle Ihre E-Mails über eine sichere SMTP-Verbindung gesendet werden.

Sie benötigen jedoch Zugriff auf die DNS-Einstellungen des Domänennamens, um einen SPF-Eintrag (Sender Policy Framework) hinzuzufügen. Alle guten SMTP-Dienste liefern genau den Datensatz, der hinzugefügt werden muss. Ein SPF-Eintrag stellt sicher, dass Ihr SMTP-Dienst von der Domäne autorisiert ist, E-Mails in ihrem Namen zu senden.

Überwachung

Die Online-Überwachung Ihrer Website ist eine 24/7-Aufgabe, die vollständig automatisiert werden kann. Im Fall von WordPress sind wir an Betriebszeit und Dateiintegrität interessiert.

Die Überwachung der Betriebszeit ist normalerweise etwas, das ein guter Host für Sie erledigt. Tools wie Uptime Robot sorgen für noch mehr Sicherheit. Ihre ersten 50 Websites sind völlig kostenlos.

In Bezug auf die Dateiintegrität kann ein Hacker, wenn er Zugriff auf Ihren Server erhält, Ihren Code ändern.

In diesem Fall sind Plugins die Antwort auf Ihr Problem. Sucuri hat ein großartiges Auditing-Plugin. Es überprüft alle Dateien in Ihrer Installation anhand einer riesigen Datenbank mit bekanntem bösartigem Code. Es prüft auch, ob der WordPress-Kern noch 100 % WordPress-Kern ist, und gibt Ihnen einen Hinweis, wenn es einen Verstoß gegeben hat, damit Sie ihn so schnell wie möglich beheben können.

Sicherungen

Die ultimative Ausfallsicherung jedes Sicherheitsprozesses sind automatisierte Backups. Die meisten guten Hoster werden dies für Sie tun, aber es gibt andere gute Optionen, wenn Ihr Host keine Backups anbietet. Automattic erstellt eine mit dem Namen VaultPress und Tools wie BackupBuddy sichern ein Dropbox-Konto oder einen Amazon S3-Bucket.

Die meisten zuverlässigen Dienste im WordPress-Backup-Bereich sind entweder Premium-Dienste oder Premium-Plugins. Je nachdem, ob Sie Ihre Daten vollständig kontrollieren müssen, bevorzugen Sie möglicherweise ein Plugin, das mit einem Cloud-Host anstelle eines Dienstes geliefert wird. Beides ist jedoch jeden Cent wert.

Gastgeber

WordPress ist nicht die einzige Software, die auf Ihrem Server läuft. Viele Angriffsvektoren sind offen, wenn Sie auf beschissenem Hosting sind. Tatsächlich ist schlechtes Hosting der Hauptgrund, warum WordPress immer noch veraltete Versionen von PHP unterstützt. Zum Zeitpunkt des Verfassens dieses Artikels berichtet die WordPress-eigene Statistikseite, dass 32,5 % aller WordPress-Installationen auf PHP-Versionen laufen, die keine Sicherheitsupdates mehr erhalten.

PHP-Versionen in WordPress, Stand 10. Mai 2018. (Große Version anzeigen)

Beachten Sie, dass fast 60 % der Installationen auf PHP 5.6 und 7.0 laufen, die nur bis Ende dieses Jahres Sicherheitspatches erhalten.

Hosting ist jedoch nicht nur wichtig, um die Software Ihres Servers auf dem neuesten Stand zu halten. Ein guter Host bietet viele weitere Dienste an, z. B. automatische tägliche Backups, automatische Updates, Überwachung der Dateiintegrität und E-Mail-Sicherheit. Es gibt einen großen Unterschied zwischen verwalteten WordPress-Hosts und Hosts, die Ihnen einen Online-Ordner mit Datenbankzugriff bieten.

Der beste Rat ist, einen anständigen verwalteten WordPress-Host zu finden. Sie kosten etwas mehr, bieten aber ein großartiges Rückgrat für Ihre WordPress-Website.

Teil 3: Vertraulichkeit

Wenn Sie dafür gesorgt haben, dass Ihre Codebasis so sicher wie möglich ist und Sie sich auf einem großartigen WordPress-Host befinden, umgeben von Malware-Scannern und Backups, dann werden Sie immer noch Sicherheitsprobleme haben, weil die Menschen am schlimmsten sind … bei Internetsicherheit.

Bei der Vertraulichkeit geht es darum, sich selbst, Ihre Kunden und die Benutzer der Website zu informieren.

Vertrauliche Daten

Sie wissen es vielleicht nicht, aber Ihre Plugins und Themes zeigen wahrscheinlich wertvolle vertrauliche Daten. Wenn Sie beispielsweise WP_DEBUG auf true gesetzt haben, zeigen Sie jedem Hacker den Root-Pfad Ihrer Website auf dem Server. Debugging-Daten sollten auf Ihrer Produktions-Website keinen Platz haben.

Eine weitere wertvolle Datenquelle sind Kommentare und Autorenseiten. Diese sind mit Benutzernamen und sogar E-Mail-Adressen gefüllt. Ein Hacker könnte diese in Kombination mit einem schwachen Passwort verwenden, um auf Ihre Website zu gelangen. Seien Sie vorsichtig mit dem, was Sie der Außenwelt zeigen.

Überprüfe außerdem, ob du wp-config.php in deine .gitignore eingefügt hast.

Programmieren Sie nicht alleine

Eine Möglichkeit, zu verhindern, dass sich viele Fehler in Ihre Codebasis einschleichen, besteht darin, Paarprogrammierung zu üben. Wenn Sie alleine sind, ist dies viel schwieriger, aber es gibt viele Online-Communities, die bereit sind, schnelle Code-Audits durchzuführen. WordPress zum Beispiel verwendet Slack, um alles über die Entwicklung seiner Plattform zu kommunizieren. Dort finden Sie viele Menschen, die bereit sind zu helfen. Langsamere, aber bessere Alternativen sind die WordPress-Foren, StackOverflow und GitHub Issues, wo Ihre Fragen (und ihre Antworten!) gespeichert werden, damit andere davon profitieren können.

Nach Input zu fragen kann schwierig sein, aber die Leute lieben es, ihr Fachwissen zu zeigen, und WordPress hat im Allgemeinen eine sehr offene und einladende Community. Der Punkt ist, dass Sie keine Ahnung haben, ob Ihr Code sicher ist, wenn Sie nie nach einer Eingabe zur Qualität Ihres Codes fragen.

Logins und Passwörter

Ihre Kunden müssen sich bei WordPress anmelden, um ihre Inhalte zu verwalten. Der WordPress-Kern tut, was er kann, um zu verhindern, dass schwache Passwörter durchkommen, aber das reicht normalerweise nicht aus.

Ich würde empfehlen, Ihrer Website ein Plugin für die Zwei-Faktor-Authentifizierung hinzuzufügen, zusammen mit einer Begrenzung der Anmeldeversuche. Besser noch, verzichten Sie ganz auf Passwörter und arbeiten Sie mit magischen Links.

Vertraue, aber verifiziere

Bisher haben wir in diesem Artikel überhaupt nicht über Social Engineering gesprochen. Es ist eine Form des Hackens, die an Bedeutung gewinnt, aber im Allgemeinen nicht zum Hacken von WordPress-Websites verwendet wird. Es ist jedoch eine hervorragende Möglichkeit, die Kultur rund um Ihre Website unter Berücksichtigung der Sicherheit einzurichten. Denn die beste Verteidigung gegen Social Engineering ist „Vertrauen, aber überprüfen“.

Wann immer ein Kunde, ein Benutzer oder Ihr Chef nach etwas im Zusammenhang mit Sicherheit fragt, ist der beste Weg, damit umzugehen, zu vertrauen, aber zuerst zu überprüfen, ob das, was sie sagen, wahr ist.

Ein Kunde kann behaupten, dass er Administratorzugriff auf WordPress benötigt, aber Ihre Aufgabe ist es, zu überprüfen, ob dies wahr ist. Benötigen sie tatsächlich Zugriff oder fehlt ihnen nur eine einzige Funktion in ihrer Rolle? Gibt es eine Möglichkeit, dieses Problem zu lösen, ohne möglicherweise neue Angriffsvektoren hinzuzufügen?

„Vertrauen, aber überprüfen“ ist ein einfaches, aber effektives Mantra, wenn es um Sicherheitsfragen geht, und es kann wirklich helfen, die Leute auf den neuesten Stand zu bringen.

Fazit

Ist WordPress unsicher? Nein, ist es nicht. Der WordPress-Kern wird ständig aktualisiert und repariert, und die meisten gemeldeten WordPress-Hacks stammen nicht von WordPress selbst. Ist die Kultur rund um WordPress unsicher? Darauf kannst du wetten!

Aber wenn Sie bei jeder Codezeile, die Sie schreiben, jedem Benutzer, den Sie hinzufügen, jedem Plugin, das Sie aktivieren, und jeder Hosting-Rechnung, die Sie bezahlen, die Sicherheit im Auge behalten, können Sie zumindest sicherstellen, dass Sie eine sichere Website betreiben, die Ihren Ruf und Ihren intakt hält Daten sicher.