Zum Hauptinhalt springen
Version: 1.x

HOST151: Cache-Antwort geteilt und wiederholt

Was dies bedeutet​

Der Cache Ihres Hosters kann die Filialdaten einer Person an eine andere ausliefern.

Auf diesem Gerät gehen keine Daten verloren. Bitten Sie Ihren Hoster, das Caching der API Ihrer Filiale zu deaktivieren (sowohl für /wp-json/- als auch für ?rest_route=-Adressen). Wenn WCPOS keine Verbindung hergestellt hat, stellen Sie anschließend die Verbindung wieder her.

Eine Caching-Ebene liefert gespeicherte REST-API-Antworten aus, ohne zu prüfen, wer die Anfrage stellt: Die App hat zwei Anfragen mit unterschiedlicher Authentifizierung gesendet und beide Male die Antwort der ersten Anfrage erhalten. In einem aktiven Shop könnte dadurch ein Kassierer die Daten eines anderen sehen. Das Problem liegt beim Hosting – WordPress antwortet selbst immer benutzerspezifisch.

In diesem Fall versucht die App die Anfrage mit einem bei jedem Aufruf eindeutigen Cache-Schlüssel erneut. Wenn sich damit nachweisen lässt, dass der Schlüssel den Cache umgeht, stellt WCPOS die Verbindung her und sendet den Schlüssel weiterhin mit – dieser Eintrag weist dann darauf hin, dass der Cache noch korrigiert werden muss. Kann keine sichere Verbindung nachgewiesen werden, stellt WCPOS erst nach der Cache-Korrektur eine Verbindung her.

Ihre Daten​

Auf diesem Gerät gehen keine Daten verloren. Wenn WCPOS keine sichere Verbindung nachweisen konnte, stellt es keine Verbindung her, statt zu riskieren, die Daten einer Person einer anderen anzuzeigen. Alles, was sich bereits auf diesem Gerät befindet, bleibt dort und wird nach der Verbindung gesendet.

Fehlerbehebung​

Für Ihren Hoster oder Website-Administrator – der Cache muss auf Host-Ebene korrigiert werden, auch wenn WCPOS ihn umgangen und eine Verbindung hergestellt hat:

  1. Nehmen Sie die REST-API-Pfade der Filiale (/wp-json/ und /?rest_route=) vom Seiten-Caching aus – deaktivieren Sie bei LiteSpeed das REST-Caching oder fügen Sie eine No-Cache-Regel hinzu; erweitern Sie bei WP Engine den WooCommerce-Ausschluss um /wp-json/wcpos und die Form ?rest_route=; stellen Sie bei Sucuri die Cache-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-Ebene ignoriert sie; weisen Sie den Host auf diese Header hin.
  3. Leeren Sie nach der Änderung der Cache-Einstellungen den Cache. Wenn WCPOS keine Verbindung hergestellt hat, stellen Sie die Verbindung wieder her.

Details​

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