Wie prüft man, ob admin-ajax.php erreichbar ist und ein REST-Nonce gültig bleibt?

Antwort

Um sicherzustellen, dass der **Rest-Nonce** in einer WordPress-Umgebung gültig bleibt und die Datei `admin-ajax.php` erreichbar ist, sind folgende Schritte notwendig: ### 1. Erreichbarkeit von `admin-ajax.php` prüfen - Rufe die URL `https://deine-domain.de/wp-admin/admin-ajax.php` im Browser auf. - Bei einer leeren Seite ohne Fehlermeldung ist die Datei erreichbar. - Alternativ kann ein einfacher `GET`-Request per `curl` oder einem anderen Tool gesendet werden: ```bash curl -I https://deine-domain.de/wp-admin/admin-ajax.php ``` Der Statuscode sollte `200 OK` sein. ### 2. Gültigkeit des Nonce prüfen Ein **Nonce** (Number used once) ist ein Sicherheits-Token, das WordPress für AJAX- und REST-API-Anfragen verwendet. Er ist zeitlich begrenzt gültig (standardmäßig 12 oder 24 Stunden). - Der Nonce wird meist per JavaScript-Variable oder als Data-Attribut im HTML ausgegeben, z.B.: ```js var restNonce = '<?php echo wp_create_nonce( 'wp_rest' ); ?>'; ``` - Bei einer AJAX- oder REST-Anfrage wird der Nonce im Header (`X-WP-Nonce`) oder als POST-Parameter mitgesendet. **Prüfung:** - Sende eine Testanfrage mit dem aktuellen Nonce an den gewünschten Endpoint (z.B. `/wp-json/wp/v2/posts`). - Wenn der Nonce abgelaufen oder ungültig ist, gibt WordPress einen Fehler wie `rest_cookie_invalid_nonce` oder `rest_nonce_invalid` zurück. - Beispiel mit `curl`: ```bash curl -H "X-WP-Nonce: DEIN_NONCE" https://deine-domain.de/wp-json/wp/v2/posts ``` - Bei Erfolg erhältst du die gewünschten Daten, bei Fehler eine JSON-Antwort mit einer Fehlermeldung. ### 3. Nonce regelmäßig erneuern Da der Nonce abläuft, sollte er regelmäßig (z.B. per JavaScript-Timer oder nach bestimmten Aktionen) vom Server neu angefordert werden. Das geschieht meist über einen eigenen Endpoint oder durch erneutes Laden der Seite. **Typischer Ablauf:** - Über JavaScript wird ein AJAX-Request an einen eigenen Endpoint (z.B. `restNonceEndpoint`) gesendet. - Der Server gibt einen neuen Nonce zurück. - Der neue Nonce wird im Frontend gespeichert und für weitere Anfragen verwendet. **Beispiel für das Nachladen eines Nonce:** ```js fetch('/wp-admin/admin-ajax.php?action=refresh_nonce') .then(response => response.json()) .then(data => { window.restNonce = data.nonce; }); ``` ### Zusammenfassung - **admin-ajax.php** muss per HTTP erreichbar sein. - **Nonce** muss bei jeder Anfrage mitgesendet und regelmäßig erneuert werden. - Die Gültigkeit des Nonce kann durch eine Testanfrage geprüft werden. - Bei Fehlern gibt WordPress eine entsprechende Fehlermeldung zurück. **Weitere Infos:** - [WordPress Nonces](https://developer.wordpress.org/plugins/security/nonces/) - [AJAX in WordPress](https://developer.wordpress.org/plugins/javascript/ajax/) - [REST API Nonces](https://developer.wordpress.org/rest-api/using-the-rest-api/authentication/) Falls du eine konkrete Fehlermeldung erhältst, kann diese helfen, das Problem genauer einzugrenzen.

Frage stellen und sofort Antwort erhalten

Verwandte Fragen

Was bedeutet 'navigation blocked by cross origin opener policy'?

Die Fehlermeldung „navigation blocked by cross origin opener policy“ bedeutet, dass eine Webseite versucht hat, eine andere Seite zu laden oder zu öffnen (z. B. per `window.open` oder... [mehr]

Warum verändert sich nach dem Bearbeiten eines Textes mit Elementor auf einer WordPress-Seite das Header-Layout?

Wenn sich nach dem Bearbeiten eines Textes auf einer Seite in WordPress mit Elementor das Layout des Headers verstellt, können dafür mehrere Ursachen verantwortlich sein: 1. **Globale Einst... [mehr]

Wie kann man in WordPress ein Bild per Klick des Nutzers umdrehen?

Um in WordPress ein Bild durch einen Klick eines Nutzers umzudrehen (z.B. horizontal oder vertikal spiegeln), kannst du JavaScript und etwas CSS verwenden. Hier ist eine einfache Möglichkeit, das... [mehr]

Wie öffne ich TranslatePress im WordPress-Backend, um eine Seite zu übersetzen?

Um im WordPress-Backend mit TranslatePress eine Seite zu übersetzen, gehe wie folgt vor: 1. **Anmelden:** Melde dich im Backend WordPress-Seite an. 2. **TranslatePress finden:** Im linken Men&uu... [mehr]

Welche Referrer-Policy ist besser: same-origin oder strict-origin-when-cross-origin?

Die Direktive `add_header Referrer-Policy ... always;` in der Nginx-Konfiguration legt fest, wie der Referrer-Header beim Laden von Ressourcen an andere Seiten gesendet wird. Beide von dir genannten O... [mehr]

Sicheres Newsletter-Script in PHP?

Ein sicheres Newsletter-Script in PHP sollte mehrere Aspekte berücksichtigen, um die Sicherheit und Funktionalität zu gewährleisten. Hier ist ein einfaches Beispiel, das grundlegende Si... [mehr]

Wie erstelle ich eine Sitemap in WordPress?

Um eine Sitemap in WordPress zu erstellen, kannst du folgende Schritte befolgen: 1. **Plugin installieren**: Eine der einfachsten Methoden ist die Verwendung eines Plugins. Beliebte Plugins sind &quo... [mehr]

Welche Optionen hat SameSite?

Die `SameSite`-Attributoptionen für Cookies sind: 1. **Strict**: Cookies werden nur gesendet, wenn die Anfrage von der gleichen Site stammt. Dies bedeutet, dass Cookies nicht bei Cross-Site-Anfr... [mehr]

Welchen Mailer nutzt WordPress?

WordPress verwendet standardmäßig die PHP-Mail-Funktion, um E-Mails zu versenden. Viele Benutzer entscheiden sich jedoch dafür, ein Plugin wie "WP Mail SMTP" zu installieren,... [mehr]

Was ist das WordPress Stammverzeichnis?

Das WordPress Stammverzeichnis ist der Hauptordner, in dem die WordPress-Installationsdateien gespeichert sind. Es enthält alle wesentlichen Dateien und Ordner, die für den Betrieb einer Wor... [mehr]