fix(security): X-Frame-Options DENY→SAMEORIGIN — 학습 문서 iframe 로딩 복구

보안 헤더 추가(0a4c769) 때 X-Frame-Options를 DENY로 걸었는데,
DENY는 '어떤 사이트에서도 iframe 금지'라 우리 자신의 iframe(DocViewerPage가
학습 문서를 표시하는 방식)까지 막아 '연결 거부'로 문서가 안 떴다.
SAMEORIGIN(같은 출처끼리는 허용)으로 변경 — 클릭재킹 방어는 그대로 유지.

원인·교훈을 Caddyfile 주석에 기록. Caddy 재기동만으로 반영(재빌드 불필요).
검증: 문서 헤더 SAMEORIGIN, SPA도 헤더 유지, intern-guide 문서 iframe 정상 로딩.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
AWESOMEDEV 2026-07-17 16:23:22 +09:00
parent f8dd3f683d
commit 0cbfe666d7

View File

@ -12,8 +12,11 @@
header {
# HTTPS만 쓰라고 브라우저에 각인 (1년) 평문 접속·다운그레이드 공격 차단
Strict-Transport-Security "max-age=31536000; includeSubDomains"
# 다른 사이트가 우리 화면을 iframe에 넣는 금지 클릭재킹 방어
X-Frame-Options "DENY"
# 다른 사이트가 우리 화면을 iframe에 넣는 금지 클릭재킹 방어.
# ⚠️ DENY(전면 금지)가 아니라 SAMEORIGIN(같은 사이트끼리는 허용)이어야 한다
# 학습 문서 뷰어(DocViewerPage)가 우리 문서를 우리 iframe으로 띄우기 때문이다.
# DENY로 두면 우리 문서조차 "연결 거부"로 뜬다(실제로 버그가 났었다).
X-Frame-Options "SAMEORIGIN"
# 브라우저가 파일 종류를 멋대로 추측(MIME 스니핑)하지 못하게
X-Content-Type-Options "nosniff"
# 다른 사이트로 이동할 우리 주소(경로)를 흘리지 않음