@zalkera/client 0.17.0 → 0.17.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -206,8 +206,19 @@ function servingSink() {
206
206
  * 양쪽으로 다 틀린다(심의 실측):
207
207
  * · **거짓 음성** — 라우트 안에 동명 `function assertSameOrigin(){return null}` 을 선언하면 통과한다.
208
208
  * 인자로 엉뚱한 `Request` 를 넘겨도 통과한다. 즉 **통과가 안전을 뜻하지 않는다.**
209
- * · **거짓 양성** — 상용 서빙 중인 두 사이트(bix·credium)가 **둘 다 걸린다**(실측 2/2). 둘 다 문의
210
- * 라우트 하나이고, reCAPTCHA + rate limit 으로 같은 위협을 이미 막고 있다.
209
+ * · **거짓 양성 가능성** — 상용 서빙 중인 두 사이트(bix·credium)가 **둘 다 걸린다**(실측 2/2).
210
+ * 자기 방식으로 막은 라우트도 우리 심볼을 쓰면 걸린다는 뜻이다.
211
+ *
212
+ * ⚠ **초판 주석 정정(2026-08-01 보안 심의).** 여기 원래 *"둘 다 reCAPTCHA + rate limit 으로 같은 위협을
213
+ * 이미 막고 있다"* 고 적었는데 **재 보지 않고 쓴 문장이었고 거짓이었다.** 심의가 서버를 띄워 실측하니
214
+ * bix `/api/contact` 는 교차 오리진 JSON·교차사이트 form 을 **둘 다 200 으로 접수**했고, rate limit 은
215
+ * `x-forwarded-for` 위조로 완전 우회됐으며, reCAPTCHA 는 `.env.example` 기본값이 `false` 였다.
216
+ * **그 사이트는 실제로 안 막고 있었다.**
217
+ *
218
+ * 그래도 이 축을 관문에서 빼는 판단은 유지한다 — 근거가 "다른 수단으로 막고 있다"가 아니라
219
+ * **"이 검사가 안전을 재지 못한다"** 이기 때문이다(위 거짓 음성). 통과해도 안전하지 않은 검사를
220
+ * 관문에 놓으면 안전하다는 착각만 판다. 다만 **막지 않는 대신 반드시 보여야 한다** —
221
+ * 업로드·검수 결과에 이 경고를 띄우는 것이 이 결정의 나머지 절반이고, 그것 없이는 방치다.
211
222
  *
212
223
  * 통과가 안전을 뜻하지 않고 실패가 위험을 뜻하지 않는 검사를 관문에 놓으면, 얻는 것은 심리적 안심뿐이고
213
224
  * 잃는 것은 신뢰다 — 게이트의 첫 동작이 **상용 전량 중단**이 된다.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zalkera/client",
3
- "version": "0.17.0",
3
+ "version": "0.17.1",
4
4
  "description": "zalkera 헤드리스 CMS 공개 API 클라이언트 (테넌트 사이트용)",
5
5
  "license": "MIT",
6
6
  "author": "Credium Co., Ltd.",
@@ -39,6 +39,7 @@
39
39
  },
40
40
  "./contracts/aeo-surface-guarantees.json": "./contracts/aeo-surface-guarantees.json",
41
41
  "./bin/check-aeo-surfaces.mjs": "./bin/check-aeo-surfaces.mjs",
42
+ "./bin/validate-storefront.mjs": "./bin/validate-storefront.mjs",
42
43
  "./lib/site-crawl.mjs": "./lib/site-crawl.mjs"
43
44
  },
44
45
  "scripts": {