HOST151: Respuestas de caché compartidas entre usuarios
Qué significa
La caché de su proveedor de alojamiento puede entregar a una persona los datos de la tienda de otra.
No se pierde nada en este dispositivo. Pida a su proveedor de alojamiento que deje de almacenar en caché la API de la tienda (tanto las direcciones /wp-json/ como las ?rest_route=). Si WCPOS no se conectó, vuelva a conectarse después.
Una capa de caché está sirviendo respuestas almacenadas de la API REST sin comprobar quién las solicita: la aplicación envió dos solicitudes de prueba con autenticaciones distintas y recibió la respuesta de la primera en ambos casos. En una tienda en funcionamiento, esto significa que un cajero podría ver los datos de otro. Es un problema de la capa de alojamiento: WordPress siempre responde de forma individual para cada usuario.
Cuando esto ocurre, la aplicación vuelve a intentarlo con una clave de caché única en cada solicitud. Si así comprueba que la clave permite evitar la caché, WCPOS se conecta y sigue enviando la clave; en ese caso, esta entrada advierte de que la caché aún necesita corregirse. Si no puede comprobar que la conexión es segura, WCPOS no se conecta hasta que se corrija la caché.
Sus datos
No se pierde nada en este dispositivo. Si WCPOS no ha podido comprobar que la conexión es segura, no se conecta para evitar el riesgo de mostrar a una persona los datos de otra; todo lo que ya está en este dispositivo permanece en él y se envía cuando se conecta.
Solución de problemas
Para su proveedor de alojamiento o administrador del sitio — la caché debe corregirse en el servidor, aunque WCPOS haya conseguido conectarse evitándola:
- Excluya las rutas de la API REST de la tienda (/wp-json/ y /?rest_route=) de la caché de páginas: en LiteSpeed, desactive la caché REST o añada una regla para no almacenar en caché; en WP Engine, amplíe la exclusión de WooCommerce a /wp-json/wcpos y al formato ?rest_route=; en Sucuri, configure el nivel de caché para que respete Cache-Control.
- La API de la tienda ya envía Cache-Control: no-store y Vary: Authorization; la capa de caché los está ignorando. Señale esas cabeceras al proveedor de alojamiento.
- Después de cambiar los ajustes de caché, vacíe la caché. Si WCPOS no se conectó, vuelva a conectarse.