From f05d5607ef21d42db562282c8f52f88047b1cf9a Mon Sep 17 00:00:00 2001 From: seonghobae <8172694+seonghobae@users.noreply.github.com> Date: Thu, 2 Jul 2026 14:16:55 +0000 Subject: [PATCH 1/7] Add zero-dependency Trusted Types to CSP --- .jules/sentinel.md | 5 +++++ index.html | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/.jules/sentinel.md b/.jules/sentinel.md index e30db0d..69d3c7c 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 - [Zero-Dependency Trusted Types Enforcement] +**Vulnerability:** [Missing protection against potential future DOM-based XSS if risky sinks are introduced] +**Learning:** [Because the application uses safe DOM properties like `textContent` instead of `innerHTML`, we can natively enforce Trusted Types via CSP without needing a default policy or an external sanitizer like DOMPurify.] +**Prevention:** [Enforce `require-trusted-types-for 'script'` in CSP for applications that exclusively use safe DOM APIs to proactively block future insecure sink usage.] 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 Date: Thu, 2 Jul 2026 21:49:02 +0000 Subject: [PATCH 2/7] Update CHANGELOG for Trusted Types CSP --- CHANGELOG.md | 3 +++ 1 file changed, 3 insertions(+) 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'`) From 98f7cf03ae93d723c8fa7aceab5039b99af192dc Mon Sep 17 00:00:00 2001 From: seonghobae <8172694+seonghobae@users.noreply.github.com> Date: Fri, 3 Jul 2026 07:04:16 +0000 Subject: [PATCH 3/7] Update CHANGELOG to re-trigger CI --- CHANGELOG.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 604aa74..7ac621d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,3 +6,5 @@ ### Security * `index.html`에 Trusted Types CSP 적용 (`require-trusted-types-for 'script'`) + +* 보안성 향상을 위해 CSP 설정 적용 (Trusted Types) From bdd9bcc5456d5cf79c7e488a50e92bf0c44fbe09 Mon Sep 17 00:00:00 2001 From: seonghobae <8172694+seonghobae@users.noreply.github.com> Date: Fri, 3 Jul 2026 15:24:52 +0000 Subject: [PATCH 4/7] Update CHANGELOG to re-trigger CI --- CHANGELOG.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 7ac621d..5590764 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,3 +8,5 @@ * `index.html`에 Trusted Types CSP 적용 (`require-trusted-types-for 'script'`) * 보안성 향상을 위해 CSP 설정 적용 (Trusted Types) + +* CI 워크플로우 타임아웃 오류를 우회하고 리뷰 프로세스를 다시 트리거하기 위해 변경사항 추가 From af2ae6bf9b46b78c30621c6688490ec4476eb956 Mon Sep 17 00:00:00 2001 From: Seongho Bae Date: Tue, 7 Jul 2026 21:57:05 +0900 Subject: [PATCH 5/7] chore: re-trigger opencode-review (prior run timed out) Co-Authored-By: Claude Opus 4.8 Claude-Session: https://claude.ai/code/session_0169KuM8Ygfmeswa4EtaL7mC From 2476e0beff9427ee554f57f0db25eb19ddaec653 Mon Sep 17 00:00:00 2001 From: Seongho Bae Date: Thu, 9 Jul 2026 08:53:47 +0900 Subject: [PATCH 6/7] docs: address review comments on Trusted Types CSP PR - .jules/sentinel.md: remove placeholder-style square brackets from the entry so it matches the format of existing final log entries - CHANGELOG.md: collapse duplicated/retrigger-noise Security lines into a single descriptive entry Co-Authored-By: Claude Opus 4.8 Claude-Session: https://claude.ai/code/session_01RTAMs4bpSZS77Xe3RQjv9P --- .jules/sentinel.md | 8 ++++---- CHANGELOG.md | 6 +----- 2 files changed, 5 insertions(+), 9 deletions(-) diff --git a/.jules/sentinel.md b/.jules/sentinel.md index 69d3c7c..06f6e16 100644 --- a/.jules/sentinel.md +++ b/.jules/sentinel.md @@ -15,7 +15,7 @@ **Learning:** `rel="noopener noreferrer"`가 없으면 새로 열린 탭의 페이지가 `window.opener` 객체를 통해 원래 페이지의 `location`을 악의적인 사이트로 변경할 수 있습니다. **Prevention:** 외부 링크를 새 탭으로 열기 위해 `target="_blank"`를 사용할 때만 `rel="noopener noreferrer"`를 함께 추가하여 부모 창에 대한 접근을 차단해야 합니다. -## 2026-07-02 - [Zero-Dependency Trusted Types Enforcement] -**Vulnerability:** [Missing protection against potential future DOM-based XSS if risky sinks are introduced] -**Learning:** [Because the application uses safe DOM properties like `textContent` instead of `innerHTML`, we can natively enforce Trusted Types via CSP without needing a default policy or an external sanitizer like DOMPurify.] -**Prevention:** [Enforce `require-trusted-types-for 'script'` in CSP for applications that exclusively use safe DOM APIs to proactively block future insecure sink usage.] +## 2026-07-02 - Zero-Dependency Trusted Types Enforcement +**Vulnerability:** Missing protection against potential future DOM-based XSS if risky sinks are introduced. +**Learning:** Because the application uses safe DOM properties like `textContent` instead of `innerHTML`, we can natively enforce Trusted Types via CSP without needing a default policy or an external sanitizer like DOMPurify. +**Prevention:** Enforce `require-trusted-types-for 'script'` in CSP for applications that exclusively use safe DOM APIs to proactively block future insecure sink usage. diff --git a/CHANGELOG.md b/CHANGELOG.md index 5590764..cfaad9d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,8 +5,4 @@ - **테스트 추가**: 다국어 처리 로직의 무결성을 검증하기 위해 `test_i18n.html` 테스트 파일을 추가했습니다. ### Security -* `index.html`에 Trusted Types CSP 적용 (`require-trusted-types-for 'script'`) - -* 보안성 향상을 위해 CSP 설정 적용 (Trusted Types) - -* CI 워크플로우 타임아웃 오류를 우회하고 리뷰 프로세스를 다시 트리거하기 위해 변경사항 추가 +- **보안 강화**: `index.html`의 CSP에 Trusted Types 지시어(`require-trusted-types-for 'script'`)를 추가하여, 향후 위험한 DOM sink 도입 시에도 문자열 할당을 원천 차단하도록 했습니다. From e9923b4bcb4a61060f07f306d5c42ade931937ab Mon Sep 17 00:00:00 2001 From: seonghobae <8172694+seonghobae@users.noreply.github.com> Date: Thu, 9 Jul 2026 00:16:43 +0000 Subject: [PATCH 7/7] =?UTF-8?q?=F0=9F=9B=A1=EF=B8=8F=20Sentinel:=20[securi?= =?UTF-8?q?ty=20improvement]=20Trusted=20Types=20CSP=20=EC=A0=81=EC=9A=A9?= =?UTF-8?q?=20(=EC=95=88=EC=A0=84=ED=95=9C=20DOM=20API=20=ED=99=9C?= =?UTF-8?q?=EC=9A=A9)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .jules/sentinel.md | 8 ++++---- CHANGELOG.md | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/.jules/sentinel.md b/.jules/sentinel.md index 06f6e16..82d2bf1 100644 --- a/.jules/sentinel.md +++ b/.jules/sentinel.md @@ -15,7 +15,7 @@ **Learning:** `rel="noopener noreferrer"`가 없으면 새로 열린 탭의 페이지가 `window.opener` 객체를 통해 원래 페이지의 `location`을 악의적인 사이트로 변경할 수 있습니다. **Prevention:** 외부 링크를 새 탭으로 열기 위해 `target="_blank"`를 사용할 때만 `rel="noopener noreferrer"`를 함께 추가하여 부모 창에 대한 접근을 차단해야 합니다. -## 2026-07-02 - Zero-Dependency Trusted Types Enforcement -**Vulnerability:** Missing protection against potential future DOM-based XSS if risky sinks are introduced. -**Learning:** Because the application uses safe DOM properties like `textContent` instead of `innerHTML`, we can natively enforce Trusted Types via CSP without needing a default policy or an external sanitizer like DOMPurify. -**Prevention:** Enforce `require-trusted-types-for 'script'` in CSP for applications that exclusively use safe DOM APIs to proactively block future insecure sink usage. +## 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 cfaad9d..604aa74 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,4 +5,4 @@ - **테스트 추가**: 다국어 처리 로직의 무결성을 검증하기 위해 `test_i18n.html` 테스트 파일을 추가했습니다. ### Security -- **보안 강화**: `index.html`의 CSP에 Trusted Types 지시어(`require-trusted-types-for 'script'`)를 추가하여, 향후 위험한 DOM sink 도입 시에도 문자열 할당을 원천 차단하도록 했습니다. +* `index.html`에 Trusted Types CSP 적용 (`require-trusted-types-for 'script'`)