diff --git a/.jules/sentinel.md b/.jules/sentinel.md index e30db0d..82d2bf1 100644 --- a/.jules/sentinel.md +++ b/.jules/sentinel.md @@ -14,3 +14,8 @@ **Vulnerability:** 외부 링크(특히 참조문헌 링크 등)에 `target="_blank"` 속성을 사용하거나 새 탭으로 여는 동작을 유도할 때, `rel="noopener noreferrer"` 속성이 누락되어 Reverse Tabnabbing 공격에 노출될 수 있음. **Learning:** `rel="noopener noreferrer"`가 없으면 새로 열린 탭의 페이지가 `window.opener` 객체를 통해 원래 페이지의 `location`을 악의적인 사이트로 변경할 수 있습니다. **Prevention:** 외부 링크를 새 탭으로 열기 위해 `target="_blank"`를 사용할 때만 `rel="noopener noreferrer"`를 함께 추가하여 부모 창에 대한 접근을 차단해야 합니다. + +## 2026-07-02 - 외부 의존성 없는 Trusted Types CSP 적용 +**Vulnerability:** 잠재적인 DOM 기반 XSS 취약점 +**Learning:** 애플리케이션이 `innerHTML` 대신 안전한 `textContent`와 같은 DOM 속성을 사용하기 때문에, DOMPurify와 같은 외부 살균제(sanitizer)나 기본 정책 없이 CSP를 통해 Trusted Types를 기본적으로 강제할 수 있습니다. +**Prevention:** 안전한 DOM API만을 사용하는 애플리케이션의 경우, CSP에 `require-trusted-types-for 'script'`를 추가하여 미래에 발생할 수 있는 안전하지 않은 sink 사용을 선제적으로 차단합니다. diff --git a/CHANGELOG.md b/CHANGELOG.md index e5fc107..604aa74 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,3 +3,6 @@ ## [Unreleased] - **성능 개선**: `i18n.js`에서 초기 로드 시 기본 언어가 한국어(ko)인 경우 불필요한 DOM 순회 및 텍스트 업데이트를 생략하도록 개선했습니다. - **테스트 추가**: 다국어 처리 로직의 무결성을 검증하기 위해 `test_i18n.html` 테스트 파일을 추가했습니다. + +### Security +* `index.html`에 Trusted Types CSP 적용 (`require-trusted-types-for 'script'`) diff --git a/index.html b/index.html index d188886..063ebea 100644 --- a/index.html +++ b/index.html @@ -3,7 +3,7 @@ - + 맥락지혜 연구실 | Contextual Wisdom Lab