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.
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. 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:
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örthttps://www.php.cn/link/322d830da1130169fb4ca1c7543799d0 https://www.php.cn/link/dd4143061640d55fb312dd0ce8afa76e https://www.php.cn/link/9e0f9113b44003201076a9fade1b72d8
Lassen Sie uns nun sehen, wie Sie WordPress nonce in einem Plugin implementieren.
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
:
// ... (插件代码,与原文相同) ...
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:
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:
Demonstration der Sicherheitsanfälligkeit
https://www.php.cn/link/0e143c3bef0f7759c23064c4dc905f8
Während wir in unserem Code anstelle von
, 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
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()
:
Fügen Sie den folgenden Code über unserer Eingabeschaltfläche hinzu:Nonce -versteckte Formularfelder abrufen oder anzeigen ... verwendet, um zu überprüfen, ob der Inhalt der Formularanforderung von der aktuellen Website stammt, nicht anderswo ...
// ... (插件代码,与原文相同) ...
Akzeptieren Sie vier Parameter-die ersten beiden sind die wichtigsten: wp_nonce_field
$action
implementing_wordpress_nonces_save
$name
implementing_wordpress_nonces_nonce
benannt
: 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 VariableErsetzen Sie den Teil derPHP zugegriffen wird.
$_REQUEST
-Funktion unseres Plugins durch den folgenden Code: admin_screen()
wp_nonce_field( 'implementing_wordpress_nonces_save', 'implementing_wordpress_nonces_nonce' );
https://www.php.cn/link/0e143c3bef0f7759c230664c4dc905f8 . >
Wenn unser Nonce implementiert und verifiziert wird, sehen Sie eine "ungültige Nonce -Spezifikation" -Meldung:
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!