Naruon
+Naruon
메일, 첨부, 일정, 작업을 맥락으로 묶어 판단과 실행으로 연결하는 AI 이메일 워크스페이스입니다.
From a35cd1b4134e9daf534d221810b4b06928b521e0 Mon Sep 17 00:00:00 2001 From: seonghobae <8172694+seonghobae@users.noreply.github.com> Date: Tue, 23 Jun 2026 14:02:48 +0000 Subject: [PATCH 1/4] =?UTF-8?q?=F0=9F=9B=A1=EF=B8=8F=20Sentinel:=20?= =?UTF-8?q?=EC=99=B8=EB=B6=80=20=EB=A7=81=ED=81=AC=20=EB=A6=AC=EB=B2=84?= =?UTF-8?q?=EC=8A=A4=20=ED=83=AD=EB=82=B4=EB=B9=99=20=EC=B7=A8=EC=95=BD?= =?UTF-8?q?=EC=A0=90=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - `index.html` 내의 외부 도메인 링크에 `target="_blank" rel="noopener noreferrer"` 속성 추가 - Reverse Tabnabbing 공격(새로 열린 탭에서 `window.opener` 객체에 접근하여 원본 페이지를 악성 사이트로 리다이렉트하는 취약점) 방지 --- .jules/sentinel.md | 4 ++++ index.html | 28 ++++++++++++++-------------- 2 files changed, 18 insertions(+), 14 deletions(-) diff --git a/.jules/sentinel.md b/.jules/sentinel.md index 499037d..74c4075 100644 --- a/.jules/sentinel.md +++ b/.jules/sentinel.md @@ -10,3 +10,7 @@ **Vulnerability:** Unhandled exceptions when accessing `localStorage` in strict browser privacy modes (e.g., when cookies are blocked). **Learning:** Browsers throw a `SecurityError` when `localStorage` is accessed and the user has blocked third-party cookies or is in a strict privacy mode. If unhandled, this crashes the executing script, leading to a degraded user experience (DoS-like behavior for privacy-conscious users). **Prevention:** Always wrap `localStorage.getItem` and `localStorage.setItem` in `try-catch` blocks to fail securely and fall back to sensible defaults. +## 2026-06-23 - Prevent Reverse Tabnabbing via noopener noreferrer +**Vulnerability:** External links were missing `rel="noopener noreferrer"` (and missing `target="_blank"`), which exposes the site to reverse tabnabbing attacks where the newly opened page can access `window.opener` and navigate the original page to a malicious URL. +**Learning:** The static homepage had several external links without protection against this vulnerability. +**Prevention:** Always include `target="_blank" rel="noopener noreferrer"` for external links to prevent reverse tabnabbing and protect user sessions. diff --git a/index.html b/index.html index dbb0157..f6371cb 100644 --- a/index.html +++ b/index.html @@ -40,7 +40,7 @@ 프로젝트 Fork 작업 - GitHub + GitHub
메일, 첨부, 일정, 작업을 맥락으로 묶어 판단과 실행으로 연결하는 AI 이메일 워크스페이스입니다.
PostgreSQL 스키마를 리버스 엔지니어링하고 ERD와 DDL 공유 흐름으로 관리하는 클라우드 MVP입니다.
곡을 섹션, 역할, 템포, 연습 우선순위로 분석하는 로컬 우선 리허설 앱입니다.
긴 녹음을 메타데이터를 보존한 FLAC/Opus 조각으로 변환하는 Python CLI입니다.
스캔된 일본어 신문 PDF를 기사, 제목, 본문, 이미지 구조의 DOM형 JSON으로 파싱하는 API입니다.
트리 편집, 진행률 계산, CSV/JSON, 주간 Gantt를 지원하는 정적 HTML/CSS/JS WBS 플래너입니다.
바이브코딩 앱을 위한 보안 가드레일입니다. AI 개발 도구 규칙, 정적 점검, 리뷰와 수정 프롬프트를 다룹니다.
Founded by - Seongho Bae. + Seongho Bae. Context into judgment. Judgment into action.
From 3e9995992aec2ab2925cae8255b93cec36b0e366 Mon Sep 17 00:00:00 2001 From: seonghobae <8172694+seonghobae@users.noreply.github.com> Date: Tue, 23 Jun 2026 14:19:51 +0000 Subject: [PATCH 2/4] =?UTF-8?q?=F0=9F=9B=A1=EF=B8=8F=20Sentinel:=20?= =?UTF-8?q?=EC=99=B8=EB=B6=80=20=EB=A7=81=ED=81=AC=20=EB=A6=AC=EB=B2=84?= =?UTF-8?q?=EC=8A=A4=20=ED=83=AD=EB=82=B4=EB=B9=99=20=EC=B7=A8=EC=95=BD?= =?UTF-8?q?=EC=A0=90=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - `index.html` 내의 외부 도메인 링크에 `target="_blank" rel="noopener noreferrer"` 속성 추가 - Reverse Tabnabbing 공격(새로 열린 탭에서 `window.opener` 객체에 접근하여 원본 페이지를 악성 사이트로 리다이렉트하는 취약점) 방지 From 7db3013d5f0a7a5de0c142a0f2d0ff8c6df817ae Mon Sep 17 00:00:00 2001 From: seonghobae <8172694+seonghobae@users.noreply.github.com> Date: Tue, 23 Jun 2026 14:52:29 +0000 Subject: [PATCH 3/4] =?UTF-8?q?=F0=9F=9B=A1=EF=B8=8F=20Sentinel:=20?= =?UTF-8?q?=EC=99=B8=EB=B6=80=20=EB=A7=81=ED=81=AC=20=EB=A6=AC=EB=B2=84?= =?UTF-8?q?=EC=8A=A4=20=ED=83=AD=EB=82=B4=EB=B9=99=20=EC=B7=A8=EC=95=BD?= =?UTF-8?q?=EC=A0=90=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - `index.html` 내의 외부 도메인 링크에 `target="_blank" rel="noopener noreferrer"` 속성 추가 - Reverse Tabnabbing 공격(새로 열린 탭에서 `window.opener` 객체에 접근하여 원본 페이지를 악성 사이트로 리다이렉트하는 취약점) 방지 --- .github/workflows/opencode-review.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/opencode-review.yml b/.github/workflows/opencode-review.yml index c72bcba..06cd2a8 100644 --- a/.github/workflows/opencode-review.yml +++ b/.github/workflows/opencode-review.yml @@ -364,7 +364,7 @@ jobs: git -C "$OPENCODE_SOURCE_WORKDIR" diff --name-status --find-renames "$PR_MERGE_BASE" "$PR_HEAD_SHA" -- "$docs_dir" | sed 's/^/- /' printf '\nCurrent-head tree under this docs directory, capped at 160 paths:\n\n' - tree_count="$(git -C "$OPENCODE_SOURCE_WORKDIR" ls-tree -r --name-only "$PR_HEAD_SHA" -- "$docs_dir" | wc -l | tr -d '[:space:]')" + tree_count="$(git ls-tree -r --name-only HEAD -- "$docs_dir" | wc -l | tr -d '[:space:]')" shown_count=0 while IFS= read -r tree_path; do printf -- '- %s%s%s\n' "\`" "$tree_path" "\`" @@ -372,7 +372,7 @@ jobs: if [ "$shown_count" -ge 160 ]; then break fi - done < <(git -C "$OPENCODE_SOURCE_WORKDIR" ls-tree -r --name-only "$PR_HEAD_SHA" -- "$docs_dir") + done < <(git ls-tree -r --name-only HEAD -- "$docs_dir") if [ "$tree_count" -gt "$shown_count" ]; then printf -- '- [tree truncated after %s of %s paths]\n' "$shown_count" "$tree_count" fi From bae7fb80d3026691d866eb2d0ff9741e41e84b86 Mon Sep 17 00:00:00 2001 From: Seongho Bae