주 콘텐츠로 건너뛰기
버전: 2.x

HOST151: 캐시된 응답이 다른 사용자에게 재전송됨

오류의 의미​

호스팅 업체의 캐시가 한 사용자의 매장 데이터를 다른 사용자에게 전송할 수 있습니다.

이 기기의 데이터는 손실되지 않았습니다. 매장 API(/wp-json/ 및 ?rest_route= 주소 모두)의 캐싱을 중지해 달라고 호스팅 업체에 요청하세요. WCPOS가 연결되지 않았다면 이후 다시 연결하세요.

캐시 계층이 요청자를 확인하지 않고 저장된 REST API 응답을 제공하고 있습니다. 앱이 서로 다른 인증 정보로 두 번의 확인 요청을 보냈는데, 두 번 모두 첫 번째 요청의 응답을 받았습니다. 실제 운영 중인 매장에서는 한 캐셔에게 다른 캐셔의 데이터가 보일 수 있다는 뜻입니다. 이는 호스팅 계층의 문제이며, WordPress 자체는 항상 사용자별로 응답합니다.

이런 상황이 발생하면 앱은 요청마다 고유한 캐시 키를 넣어 다시 시도합니다. 이 키로 캐시를 우회할 수 있음이 확인되면 WCPOS가 연결되고 계속 키를 전송합니다. 이때 이 항목은 캐시를 여전히 수정해야 한다는 경고입니다. 안전한 연결을 확인할 수 없으면 캐시가 수정될 때까지 WCPOS는 연결하지 않습니다.

데이터에 미치는 영향​

이 기기의 데이터는 손실되지 않았습니다. WCPOS는 안전한 연결을 확인할 수 없으면 한 사용자의 데이터를 다른 사용자에게 노출할 위험을 피하기 위해 연결하지 않습니다. 기기에 이미 있는 데이터는 그대로 유지되며 연결되면 전송됩니다.

문제 해결​

호스팅 업체 또는 사이트 관리자 안내 — WCPOS가 캐시를 우회해 연결했더라도 호스트의 캐시를 수정해야 합니다:

  1. 매장의 REST API 경로(/wp-json/ 및 /?rest_route=)를 페이지 캐싱에서 제외하세요. LiteSpeed에서는 REST 캐싱을 비활성화하거나 캐싱 금지 규칙을 추가하세요. WP Engine에서는 WooCommerce 제외 범위를 /wp-json/wcpos 및 ?rest_route= 형식까지 확장하세요. Sucuri에서는 Cache-Control을 따르도록 캐싱 수준을 설정하세요.
  2. 매장 API는 이미 Cache-Control: no-store 및 Vary: Authorization을 전송하고 있지만 캐시 계층이 이를 무시하고 있습니다. 호스팅 업체에 이 헤더들을 확인해 달라고 요청하세요.
  3. 캐시 설정을 변경한 뒤 캐시를 비우세요. WCPOS가 연결되지 않았다면 다시 연결하세요.

세부 정보​

코드
HOST151 (CACHE_SHARED_REPLAY)
심각도
error
도입 버전
WCPOS 1.10.0