Zum Hauptinhalt springen
Version: 2.x

HOST151: Cache liefert Daten an andere Benutzer aus

Was das bedeutet​

Der Cache Ihres Hosting-Anbieters kann die Shopdaten einer Person an eine andere ausliefern.

Auf diesem Gerät geht nichts verloren. Bitten Sie Ihren Hosting-Anbieter, die API des Shops nicht mehr zwischenzuspeichern (sowohl Adressen mit /wp-json/ als auch mit ?rest_route=). Falls WCPOS keine Verbindung hergestellt hat, verbinden Sie es anschließend erneut.

Eine Cache-Schicht liefert gespeicherte REST-API-Antworten aus, ohne zu prüfen, wer die Anfrage stellt: Die App hat zwei unterschiedlich authentifizierte Testanfragen gesendet und beide Male die Antwort auf die erste erhalten. In einem produktiven Shop bedeutet das, dass ein Kassierer die Daten eines anderen sehen könnte. Das Problem liegt beim Hosting — WordPress selbst antwortet immer benutzerspezifisch.

In diesem Fall versucht die App es erneut und sendet bei jeder Anfrage einen eindeutigen Cache-Schlüssel mit. Lässt sich damit nachweisen, dass der Schlüssel den Cache umgeht, stellt WCPOS die Verbindung her und sendet den Schlüssel weiterhin mit — dieser Eintrag warnt dann davor, dass der Cache weiterhin korrigiert werden muss. Lässt sich keine sichere Verbindung nachweisen, verbindet sich WCPOS erst, wenn der Cache korrigiert wurde.

Ihre Daten​

Auf diesem Gerät geht nichts verloren. Wenn WCPOS keine sichere Verbindung nachweisen konnte, stellt es keine Verbindung her, um nicht die Daten einer Person einer anderen anzuzeigen. Alles, was bereits auf diesem Gerät gespeichert ist, bleibt erhalten und wird gesendet, sobald die Verbindung steht.

Fehlerbehebung​

Für Ihren Hosting-Anbieter oder Website-Administrator — der Cache muss auf dem Server korrigiert werden, auch wenn WCPOS ihn umgehen und sich verbinden konnte:

  1. Nehmen Sie die REST-API-Pfade des Shops (/wp-json/ und /?rest_route=) vom Seiten-Cache aus — deaktivieren Sie bei LiteSpeed das REST-Caching oder fügen Sie eine No-Cache-Regel hinzu; erweitern Sie bei WP Engine die WooCommerce-Ausnahme um /wp-json/wcpos und die Form mit ?rest_route=; stellen Sie bei Sucuri die Caching-Stufe so ein, dass Cache-Control berücksichtigt wird.
  2. Die API des Shops sendet bereits Cache-Control: no-store und Vary: Authorization — die Cache-Schicht ignoriert diese Angaben. Weisen Sie den Hosting-Anbieter auf diese Header hin.
  3. Leeren Sie nach dem Ändern der Cache-Einstellungen den Cache. Falls WCPOS keine Verbindung hergestellt hat, verbinden Sie es erneut.

Details​

Code
HOST151 (CACHE_SHARED_REPLAY)
Schweregrad
error
Eingeführt in
WCPOS 1.10.0