HOST151:缓存共享重放
含义说明
主机的缓存可能会将某人的店铺数据转发给其他人。
此设备上的数据不会丢失。请让主机停止缓存店铺的 API(/wp-json/ 和 ?rest_route= 这两种地址)。如果 WCPOS 未能连接,请之后重新连接。
某个缓存层在未核实请求者身份的情况下提供已缓存的 REST API 响应:应用发送了两个身份验证信息不同的探测请求,却两次收到第一个请求的响应。在实际运营的店铺中,这意味着一位收银员可能看到另一位收银员的数据。这是主机托管层的问题——WordPress 始终会按用户返回响应。
发生这种情况时,应用会在每个请求中使用唯一缓存键重试。如果这样能确认缓存键绕过了缓存,WCPOS 就会连接并持续发送该键;此时此条目会显示一条警告,提示缓存仍需修复。如果无法确认连接安全,WCPOS 会在缓存修复前保持断开。
你的数据
此设备上的数据不会丢失。如果 WCPOS 无法确认连接安全,就不会连接,以免将某人的数据显示给其他人;此设备上已有的内容会保留,并在连接后发送。
排查方法
致主机或网站管理员——即使 WCPOS 通过绕过缓存成功连接,也必须在主机上修复缓存:
- 将店铺的 REST API 路径(/wp-json/ 和 /?rest_route=)排除在页面缓存之外——在 LiteSpeed 中禁用 REST 缓存或添加 no-cache 规则;在 WP Engine 中,将 WooCommerce 排除规则扩展到 /wp-json/wcpos 和 ?rest_route= 格式;在 Sucuri 中,将缓存级别设置为遵循 Cache-Control。
- 商店的 API 已经发送 Cache-Control: no-store 和 Vary: Authorization —— 是缓存层在忽略它们;请让主机商关注这些头。
- 更改缓存设置后,请清除缓存。如果 WCPOS 未能连接,请重新连接。