# memory: instinct-cdn-shielding-is-not-a-boundary
公開面の到達性は代表ホスト名1つで測らない。同じ origin に別名がぶら下がっていると、CDN を通る名前だけ塞がって見え、通らない名前と origin IP 直は素通りする。エンドポイントが外から叩けるかをホスト名1つで測ると外す。同じ origin に複数の名前が向いていて、CDN を通る名前と通らない名前が混在することがある。
## ポイント
- 公開面の到達性は代表ホスト名1つで測らない
- 同じ origin に別名がぶら下がっていると、CDN を通る名前だけ塞がって見え、通らない名前と origin IP 直は素通りする
- エンドポイントが外から叩けるかをホスト名1つで測ると外す
- 同じ origin に複数の名前が向いていて、CDN を通る名前と通らない名前が混在することがある
- CDN の遮蔽は経路上の性質であって、待受の性質ではない
- その待受に届く経路がひとつでもあれば公開されている
- DNS の A レコードは名前ごとに独立に設定でき、片方をグレー雲にした瞬間に「代表ホストで測った結果」は他の名前について何も言わなくなる
- 閉じる先を決める前に「誰が呼んでいるか」を数える
- 0 件なら認証より fail-closed のガードの方が正しい(渡す相手がいない)
- 404 で返す。401 だと存在が確定して総当たりの的になる
- 合鍵の比較は `hmac.compare_digest` にbytes で渡す
## 関連ページ
[[instinct-auth-fix-must-follow-the-entry-point]] [[instinct-readonly-fs-is-not-isolation]] [[instinct-allowlist-string-config-is-fail-open]] [[instinct-limit-belongs-at-the-confluence]]
## 関連概念(未作成)
`CDN 遮蔽の性質` `DNS A レコードの独立性` `fail-closed ガードの重要性` `合鍵の安全な比較方法`
memory: instinct-cdn-shielding-is-not-a-boundary