Leitfaden für Nonces in WordPress
Veröffentlicht: 2023-02-12Sicherheit ist ein wichtiges Thema für alle Website-Besitzer. Obwohl es viele Strategien gibt, um Ihre Website sicher zu halten, sollte die Verwendung von Nonces in WordPress nicht übersehen werden. Dies ist eine der am häufigsten verwendeten Sicherheitsfunktionen und verhindert eine Reihe potenzieller Probleme.
Eine Nonce ist eine „einmal verwendete Nummer“ und schützt Formulare und URLs vor böswilligen Personen und anderem Missbrauch. Diese Zahlen fungieren als Identifikationswerte, die die Browser der Benutzer anzeigen müssen, um die Erlaubnis zu erhalten, sensible Aktionen auszuführen.
In diesem Artikel sehen wir uns an, wie Nonces in WordPress funktionieren und wie man sie erstellt. Wir besprechen dann, wie man eine Nonce verifiziert. Lass uns anfangen!
Wie funktionieren Nonces in WordPress?
Der Hauptzweck einer Nonce besteht darin, Ihre WordPress-Website vor böswilligen Angriffen wie Cross-Site Request Forgeries (CSRFs) zu schützen. Diese Art von Angriff bringt Benutzer dazu, ein Formular abzusenden oder auf einen Link zu klicken, der für Ihre Website schädlich ist. Um Ihre Website zu schützen, überprüft WordPress den Nonce-Wert und erlaubt nur den Abschluss der Aktion, wenn dieser Wert korrekt ist.
Nonces sind bereits Teil der WordPress-Funktionalität und Sie müssen sie nicht zu von WordPress generierten Elementen hinzufügen. Das bedeutet, dass wichtige Aktionen wie das Hinzufügen und Bearbeiten von Beiträgen automatisch geschützt sind.
Wenn eine Nonce verwendet wird, hat sie eine Standardlebensdauer von 24 Stunden. Nach dieser Zeit kann die Nonce nicht mehr verwendet werden, um die Aktion zu verifizieren, für die sie definiert wurde. Diese Lebensdauer kann jedoch von Website-Administratoren angepasst werden.
Einer der häufigsten CSRF-Angriffe, vor denen Nonces schützen, ist das böswillige Löschen von Benutzerkonten. Nach der Implementierung einer Nonce generiert Ihr Admin-Bildschirm eine URL für die Kontolöschung. WordPress fügt am Ende dieser URL eine Nonce hinzu, die ungefähr so aussieht:
http://ihredomain.com/wp-admin/users.php?user=7&action=delete&_wpnonce=c214gd5315
Wenn ein Angreifer versucht, die Benutzer-ID durch einen anderen Wert zu ersetzen, z. B. „user=8“, ist die Nonce ungültig. Das Löschen des Kontos schlägt fehl und eine 403 Forbidden-Fehlerseite wird angezeigt. Dadurch wird es für böswillige Personen viel schwieriger, den Inhalt Ihrer Website anzugreifen.
Es ist wichtig zu wissen, dass Nonces Ihre Website schützen können, aber Sie müssen auch verstehen, wie man sie implementiert. Während sie bereits für standardmäßige WordPress-Funktionen aktiv sind, müssen Sie sie möglicherweise manuell für Ihre Themen und Plugins implementieren.
Nonce erstellen
Um eine Nonce zu erstellen, müssen Sie dem Code Ihrer Website eine Funktion hinzufügen. Alle Nonce-Erstellungscodes werden in der Datei functions.php abgelegt. Um diese Datei zu öffnen, navigieren Sie in Ihrem WordPress-Dashboard zu Darstellung > Design-Editor . Klicken Sie rechts auf functions.php , um den Dateieditor zu öffnen.
Nonces werden separat für URLs, Formulare und Aktionen implementiert. Um eine Aktions-Nonce zu erstellen, fügen Sie dieser Datei den folgenden Code hinzu:
$nonce= wp_create_nonce('$action');
Der Abschnitt „$action“ des Codes sollte angepasst werden, um die Aktion widerzuspiegeln, die die Nonce überprüfen soll. Ein Beispiel wäre die Verwendung der Aktion „Post löschen“, die die Nonce einrichtet, um Benutzer zu überprüfen, die versuchen, Posts zu löschen.

Um eine Nonce für eine URL zu erstellen, können Sie den folgenden Code verwenden:
$nonce= wp_nonce_url();
Innerhalb der Klammern müssen Sie die Argumente der Funktion angeben. Dies ist die reine URL und die Zeichenfolge für die Benutzeraktionen. Die Zeichenfolge sollte für einen einzelnen Benutzer spezifisch sein, um die Sicherheit der Nonce zu verbessern.
Wenn Sie eine Nonce zum Löschen eines Benutzerkontos erstellen möchten, können Sie dieses Snippet verwenden:
$nonce= wp_nonce_url($bare_url,'delete-user_'.$user->ID);
WordPress wird den Namen der Nonce standardmäßig auf „_wpnonce“ setzen, aber Sie können dies aktualisieren, indem Sie Ihren gewählten Namen am Ende der obigen Zeichenfolge hinzufügen.
Um eine Nonce für ein Formular zu erstellen, fügen Sie diesen Code ein:
$nonce= wp_nonce_field();
In den Klammern müssen Sie eine Zeichenfolge für die Benutzeraktionen hinzufügen. Sobald dies erledigt ist, erstellt die Funktion zwei versteckte Felder im Formular, wobei das erste den Nonce-Hashwert enthält. Das zweite Feld ist die aktuelle URL. Die endgültige Funktion sollte in etwa so aussehen:
$nonce= wp_nonce_field('remove-comment_'.$comment_id);
Diese Nonce-Funktion hat auch den standardmäßigen WordPress-Nonce-Namen. Dies ist jedoch auch etwas, das Sie ändern können, wenn Sie dies bevorzugen.
Überprüfung einer Nonce
Nachdem Sie Ihrer WordPress-Website eine Nonce hinzugefügt haben, ist es wichtig, dass Sie sie überprüfen. Dadurch wird sichergestellt, dass die Nonce ordnungsgemäß funktioniert und Ihre Website sicher bleibt.
Es werden verschiedene Methoden verwendet, um die Nonce für URLs und Formulare zu überprüfen. Um eine URL-Nonce zu verifizieren, fügen Sie der Datei functions.php den folgenden Code hinzu:
wp_verify_nonce($nonce, $action);
Passen Sie in dieser Funktion „$nonce“ an den Namen der Nonce an, die Sie überprüfen möchten, z. B. „delete-user“. Ändern Sie dann die Zeichenfolge „$action“ in die spezifische Zeit, zu der die Nonce erstellt wird. Wenn die Funktion ausgeführt wird, gibt sie „false“ zurück, wenn die Nonce ungültig ist.
Wenn die Nonce hingegen gültig ist, gibt die Funktion entweder eine 1 oder eine 2 zurück. Dies gibt Ihnen das Alter der Nonce an. Ein Wert gleich 1 bedeutet, dass die Nonce in den letzten 12 Stunden erstellt wurde. Ein Wert gleich 2 bedeutet, dass die Nonce vor mehr als 12 Stunden, aber vor weniger als 24 Stunden erstellt wurde.
Wenn Sie einem Formular eine Nonce hinzugefügt haben, ist der folgende Code erforderlich, um es zu überprüfen:
check_admin_referer($action, $nonce);
Wenn der Nonce-Wert gültig ist, funktioniert das Formular wie beabsichtigt. Wenn die Nonce jedoch ungültig ist, leitet der Browser des Benutzers ihn auf eine 403 Forbidden-Fehlerseite um.
Erstellen Sie sichere digitale Erlebnisse auf WP Engine
Sicherheit ist für eine stabile Website von entscheidender Bedeutung, und Nonces fügen eine zusätzliche Schutzebene hinzu. Um sie zu implementieren, müssen Sie lediglich etwas Code zu Ihrer Datei functions.php hinzufügen. Der verwendete Code variiert je nach Art der Nonce, die Sie erstellen möchten, und der Aktion, die Sie schützen möchten.
Während das Erstellen und Implementieren von Nonces die Standortsicherheit verbessert, müssen auch andere Sicherheitsprotokolle berücksichtigt werden. Glücklicherweise bietet die sichere WordPress-Hosting-Plattform von WP Engine einige der besten Sicherheitsressourcen für Benutzer und Entwickler. So haben Sie mehr Zeit, sich auf die Perfektionierung Ihrer WordPress-Seite zu konzentrieren!