Heim > CMS-Tutorial > WordDrücken Sie > Was sind WordPress Nonces?

Was sind WordPress Nonces?

Jennifer Aniston
Freigeben: 2025-02-16 12:58:09
Original
641 Leute haben es durchsucht

WordPress -Sicherheit: Verwenden Sie Nonce, um Themen und Plugin -Code zu schützen

Schutz der Sicherheit von WordPress-Themen oder dem Plug-in-Code ist entscheidend und kann die Angriffe von böswilligen Benutzern effektiv verhindern. Wir haben vor dem Reinigen, Flucht und Validieren von Formdaten in WordPress und der Verwendung von VIP -Scanner abgedeckt, um die Qualität von WordPress -Themen zu verbessern. Heute werden wir untersuchen, wie Nonce (einmalige digitale) WordPress-Themen und Plugins sicher halten kann.

Schlüsselpunkte

  • WordPress Nonce oder "einmalige Verwendung der Verwendung" ist ein eindeutiges Sicherheitstoken, das zur Verbesserung der Sicherheit von WordPress-Websites verwendet wird, indem Benutzeranfragen überprüft und böswillige Versuche verhindern. Sie sind besonders nützlich bei der Verhinderung von CSRF-Angriffen (Cross-Site-Anfragen Forgery).
  • nonce funktioniert, indem er für jede Benutzersitzung, Formulare oder AJAX -Anforderung eine eindeutige Token generiert. Dieses Token wird dann bei der Bearbeitung der Anforderung überprüft, und wenn es nicht übereinstimmt, wird die Anfrage abgelehnt. Dies macht es den Angreifern schwer, das Token vorherzusagen oder zu missbrauchen.
  • Erstellen von Nonce in WordPress wird durch die Verwendung der WordPress -Funktion wp_create_nonce() erreicht, die einen einzelnen String -Parameter akzeptiert, der den zu geschützten Vorgang darstellt. Die Verifizierung von Nonce wird unter Verwendung der wp_verify_nonce() -Funktion durchgeführt, die zwei Parameter akzeptiert: die zu verifizierte Nonce und die zugehörige Operation.
  • Nonce kann für AJAX -Anforderungen in WordPress verwendet werden, wobei eine zusätzliche Sicherheitsebene hinzugefügt werden kann, um CSRF -Angriffe zu verhindern. Nonce ist ebenfalls benutzerspezifisch und bietet eine zusätzliche Sicherheitsebene, indem sichergestellt wird, dass Nonce für einen Benutzer für einen anderen ungültig ist.

Was ist WordPress nonce?

WordPress nonce ist definiert als:

… eine "einmalige Verwendung der Verwendung" zum Schutz von URLs und Formen vor bestimmten Arten von Missbrauch (böswillig oder auf andere Weise). https://www.php.cn/link/c5af1dfde10402285102771ad64b3dac

Während in WordPress ist Nonce keine technische Zahl (es ist ein Hash von Buchstaben und Zahlen), verhindern, dass böswillige Benutzer Aktionen ausführen.

WordPress Nonce's Arbeit ist in zwei Teile unterteilt:

  • Nonce (Hash -Wert) erstellen, sie über Formular oder Aktion senden und
  • Nonce überprüfen, dann Formulardaten akzeptieren oder die Aktion ausführen.

Wenn Sie beispielsweise einen Beitrag im WordPress -Administrator -Bildschirm löschen, werden Sie feststellen, dass die URL einen _wpnonce Parameter enthält:

https://www.php.cn/link/18175d262a01ebf04bc03e38e48e3ffc

Die Routine zum Löschen eines Beitrags prüft, ob Post 542 vor dem Löschen des Beitrags einen Nonce -Wert von a03ac85772 hat. Wenn Nonce nicht vorhanden ist oder nicht mit dem erwarteten Wert übereinstimmt, wird der Beitrag nicht gelöscht.

Dies verhindert, dass böswillige Benutzer möglicherweise eine große Anzahl von Beiträgen löschen. Zum Beispiel funktioniert das Folgende nicht, da Nonce zur Post ID 542:

gehört

https://www.php.cn/link/322d830da1130169fb4ca1c7543799d0 https://www.php.cn/link/dd4143061640d55fb312dd0ce8afa76e https://www.php.cn/link/9e0f9113b44003201076a9fade1b72d8

What Are WordPress Nonces?

Lassen Sie uns nun sehen, wie Sie WordPress nonce in einem Plugin implementieren.

Richten Sie unser WordPress -Plugin

ein

Beginnen wir mit einem Basis -Plugin mit dem Bildschirm "eigener Einstellungen". Der Bildschirm "Einstellungen" enthält ein Feld, das in der WordPress -Options -Tabelle eingereicht und gespeichert werden kann.

Geben Sie den folgenden Code in eine neue Datei in wp-content/plugins/implementing-wordpress-nonces/implementing-wordpress-nonces.php:

ein
// ... (插件代码,与原文相同) ...
Nach dem Login kopieren
Nach dem Login kopieren

Aktivieren Sie das Plugin über WordPress Management & GT;

Klicken Sie auf dieses Element und Sie werden mit nur einem Feld in den Bildschirm "Einstellungen" weitergeleitet: What Are WordPress Nonces?

Geben Sie einen beliebigen Wert ein, klicken Sie auf "Speichern". Wenn alles funktioniert, sehen Sie die Bestätigungsinformationen und den Wert, den Sie gerade eingegeben haben: What Are WordPress Nonces?

Demonstration der Sicherheitsanfälligkeit What Are WordPress Nonces?

Geben Sie die folgende URL in Ihre Webbrowser -Adressleiste ein (ersetzen Sie den Domänennamen durch, an dem Sie WordPress installiert haben):

https://www.php.cn/link/0e143c3bef0f7759c23064c4dc905f8

Aufmerksamkeit Was ist passiert? Der Wert wird einfach als ABC gespeichert. Greifen Sie einfach direkt auf die URL zu und melden Sie sich bei WordPress an:

Während wir in unserem Code anstelle von What Are WordPress Nonces?

verwenden können (wir verwenden

, um Sicherheitsprobleme leichter zu demonstrieren), hilft dies nicht - böswillige Benutzer können sich immer noch selbst verwenden oder Sie zum Klicken veranlassen Mit dem Link können Sie eine Postanforderung an diesen Bildschirm senden, was zu einer Änderung der Optionswerte führt. $_POST $_REQUEST Dies wird als Cross-Site-Anforderungsfälschung (oder CSRF) bezeichnet. Bösartige Websites, E -Mails, Anwendungen usw. veranlasst den Webbrowser des Benutzers unnötige Vorgänge. $_REQUEST

Wir werden jetzt WordPress Nonce erstellen und verifizieren, um zu verhindern, dass dieser Angriff möglich wird.

Schutz unserer Plug-Ins mit Nonce

Wie bereits erwähnt, ist dieser Prozess in zwei Schritte unterteilt: Erstens müssen wir einen Nonce erstellen, der mit unserem Formular eingereicht wird. Zweitens müssen wir den Nonce beim Einreichen des Formulars überprüfen.

Um ein Nonce -Feld in unserem Formular zu erstellen, können wir wp_nonce_field():

verwenden

Nonce -versteckte Formularfelder abrufen oder anzeigen ... verwendet, um zu überprüfen, ob der Inhalt der Formularanforderung von der aktuellen Website stammt, nicht anderswo ...

Fügen Sie den folgenden Code über unserer Eingabeschaltfläche hinzu:

// ... (插件代码,与原文相同) ...
Nach dem Login kopieren
Nach dem Login kopieren

Akzeptieren Sie vier Parameter-die ersten beiden sind die wichtigsten: wp_nonce_field

  • : Dies bestimmt den spezifischen Betrieb, den wir ausführen, und sollte eindeutig sein. Es ist am besten, den Plugin -Namen als Präfix für den Vorgang zu verwenden, da möglicherweise mehrere Vorgänge ausgeführt werden. In diesem Fall speichern wir etwas, also verwenden wir $action implementing_wordpress_nonces_save
  • : Dies bestimmt den Namen des von dieser Funktion erstellten Versteckfeldes. Wie oben erwähnt, haben wir den Plugin -Namen als Präfix verwendet, also haben wir ihn $name implementing_wordpress_nonces_nonce benannt
Wenn wir den Bildschirm "Einstellungen" neu laden, unseren Wert ändern und auf Speichern klicken, werden Sie feststellen, dass sich der Wert noch ändert. Wir müssen nun die Überprüfung des eingereichten Nonce -Feldes mit

: wp_verify_nonce( $name, $action ) implementieren

Stellen Sie sicher, dass Nonce korrekt ist und im Verhältnis zum angegebenen Vorgang nicht abgelaufen ist. Diese Funktion wird verwendet, um den in der aktuellen Anforderung gesendeten Nonce zu überprüfen, auf das normalerweise über die Variable

PHP zugegriffen wird. $_REQUEST

Ersetzen Sie den Teil der

-Funktion unseres Plugins durch den folgenden Code: admin_screen()

wp_nonce_field( 'implementing_wordpress_nonces_save', 'implementing_wordpress_nonces_nonce' );
Nach dem Login kopieren
Dieser Code führt die folgenden Vorgänge aus:

    Erstens überprüft es, ob wir etwas eingereicht haben.
  • dann überprüft es, ob unser Nonce -Feld existiert, und versuchen Sie, den Wert von Nonce basierend auf der erwarteten Aktion zu überprüfen.
  • Wenn das Check passt, aktualisieren Sie die Optionen.
  • Wenn der Scheck fehlschlägt, werfen wir einen 403 -Fehler mit der Meldung "Ungültiges nonce angegeben".
Um sicherzustellen, dass unser Nonce erstellt und verifiziert wird, versuchen wir erneut, auf unsere "bösartige" direkte URL zuzugreifen:

https://www.php.cn/link/0e143c3bef0f7759c230664c4dc905f8 . >

Wenn unser Nonce implementiert und verifiziert wird, sehen Sie eine "ungültige Nonce -Spezifikation" -Meldung:

What Are WordPress Nonces?

... (Der Rest ist der gleiche wie der Originaltext, aber die Sprache und der Ausdruck werden ausführlich angepasst, um die ursprüngliche Absicht unverändert zu halten) ....

Das obige ist der detaillierte Inhalt vonWas sind WordPress Nonces?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage