배경
OneDrive(개인) 및 OneDrive for Business/SharePoint 웹 UI에서 .hwp / .hwpx 파일을 클릭하면 Microsoft 기본 미리보기가 "미리보기 불가" 오버레이를 띄우고, 다운로드 메뉴를 거쳐야만 rhwp 확장의 다운로드 인터셉터가 동작한다.
결과적으로 OneDrive 환경에서는 rhwp가 제공하는 한-클릭 뷰어 진입 UX가 작동하지 않는다. Word 파일을 클릭하면 바로 뷰어 탭이 열리는 것과 대비되는 경험 격차.
목표
개인 OneDrive (onedrive.live.com) 에서 HWP/HWPX 파일 클릭 시, 다운로드 대화상자·"미리보기 불가" 오버레이 없이 rhwp 뷰어 탭이 열려 즉시 렌더링되도록 한다.
비목표 (본 이슈 범위 외)
- OneDrive for Business / SharePoint (
*.sharepoint.com, *-my.sharepoint.com) — AAD Bearer 토큰 / MSAL / SPO REST 스코프 처리가 독자적 난이도이므로 별도 후속 이슈로 분리
- 편집 결과의 OneDrive 되저장 (읽기 전용 유지)
- Safari 포팅 (후속)
- Google Drive / Dropbox 등 타 클라우드 (후속)
접근 방향 (요약)
- OneDrive 도메인에서만 활성화되는 전용 핸들러 (
onedrive-handler.js) 분리 — 기존 범용 배지·호버 로직(content-script.js)과 독립
- document 레벨 capture phase 로
click / dblclick / keydown Enter / 컨텍스트 메뉴 "열기" 이벤트 가로채기 (preventDefault + stopImmediatePropagation)
- Service Worker가
credentials: 'include' + redirect: 'manual' 로 파일 직접 fetch → 매직 넘버·크기·도메인 검증 후 뷰어 탭에 전달
보안 고려 (필수)
브라우저 확장 보안 감사 보고서(mydocs/report/browser_extension_security_audit.md) 지적 사항 연계:
- C-01 오픈 프록시 방지: OneDrive 관련 도메인 화이트리스트 (
*.onedrive.live.com, *.storage.live.com)
- C-02 URL 검증: 프로토콜·호스트·확장자·
Content-Length 검증
- DNS Rebinding / 리다이렉트 체이닝:
redirect: 'manual' 강제 + Location 헤더 재검증
- 매직 넘버 검증: HWP (
D0 CF 11 E0) / HWPX (50 4B 03 04)
- N-04 메모리 DoS: 50MB 상한 + 대용량 경고
성공 기준
선행 검토
- 외부 제안서 선행 검토 완료: OneDrive DOM 가로채기 방향은 타당하나 하이퍼-워터폴 절차·보안 연계·OfB 난이도 보강 필요
- 수행계획서:
mydocs/plans/task_m100_{이_이슈번호}.md (승인 대기)
관련
체크리스트 (진행 추적용)
배경
OneDrive(개인) 및 OneDrive for Business/SharePoint 웹 UI에서
.hwp/.hwpx파일을 클릭하면 Microsoft 기본 미리보기가 "미리보기 불가" 오버레이를 띄우고, 다운로드 메뉴를 거쳐야만 rhwp 확장의 다운로드 인터셉터가 동작한다.결과적으로 OneDrive 환경에서는 rhwp가 제공하는 한-클릭 뷰어 진입 UX가 작동하지 않는다. Word 파일을 클릭하면 바로 뷰어 탭이 열리는 것과 대비되는 경험 격차.
목표
개인 OneDrive (
onedrive.live.com) 에서 HWP/HWPX 파일 클릭 시, 다운로드 대화상자·"미리보기 불가" 오버레이 없이 rhwp 뷰어 탭이 열려 즉시 렌더링되도록 한다.비목표 (본 이슈 범위 외)
*.sharepoint.com,*-my.sharepoint.com) — AAD Bearer 토큰 / MSAL / SPO REST 스코프 처리가 독자적 난이도이므로 별도 후속 이슈로 분리접근 방향 (요약)
onedrive-handler.js) 분리 — 기존 범용 배지·호버 로직(content-script.js)과 독립click/dblclick/keydown Enter/ 컨텍스트 메뉴 "열기" 이벤트 가로채기 (preventDefault+stopImmediatePropagation)credentials: 'include'+redirect: 'manual'로 파일 직접 fetch → 매직 넘버·크기·도메인 검증 후 뷰어 탭에 전달보안 고려 (필수)
브라우저 확장 보안 감사 보고서(
mydocs/report/browser_extension_security_audit.md) 지적 사항 연계:*.onedrive.live.com,*.storage.live.com)Content-Length검증redirect: 'manual'강제 + Location 헤더 재검증D0 CF 11 E0) / HWPX (50 4B 03 04)성공 기준
click/dblclick/Enter모두 동일 UX.hwp직접 링크)선행 검토
mydocs/plans/task_m100_{이_이슈번호}.md(승인 대기)관련
mydocs/manual/browser_extension_dev_guide.mdmydocs/report/browser_extension_security_audit.md체크리스트 (진행 추적용)