尚未偵測到更新。GitHub 發布版本後會顯示在這裡。
個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證製作者的介紹僅有上面的一句話。 更多詳情請閱讀儲存庫 README。 儲存庫 README ↗
正在載入完整 README。
檢視完整 README ↗SK ALEPH 부트캠프 방어전 실습입니다. 누구나 읽을 수 있게 열려 있던 가상 메모 자료실을 단계별로 막았습니다. 메모는 모두 실습용 가상 자료입니다.
현재 5단계: 로그인한 사용자만, 자기 메모만, 서버 한곳을 거쳐서만 읽고 쓸 수 있습니다.
flowchart LR
A["브라우저<br/>Supabase 로그인"] --> B["/api/notes<br/>서버 함수"]
B --> C{"토큰 검사"}
C -- 없음 · 실패 --> D["401"]
C -- 통과 --> E{"내 메모?"}
E -- 아님 --> F["404"]
E -- 맞음 --> G["Supabase notes<br/>직접 접근 권한 없음"]
| 단계 | 한 것 |
|---|---|
| 1 | 시작 틀을 Vercel에 배포하고, 메모가 /data.json으로 공개된 상태 확인 |
| 2 | 메모를 Supabase 테이블로 옮기고 공개 data.json 삭제 |
| 3 | 메모 API가 로그인 토큰을 검사하고, 없으면 401 |
| 4 | 서버가 확인한 사용자 ID로만 읽기 · 수정 · 삭제, 남의 메모는 없는 메모처럼 404 |
| 5 | 테이블 직접 권한을 모두 거두고 메모 요청을 서버 함수 /api/notes 한곳으로 |
| 보너스 | 무차별 로그인 · 웹 주입 경보를 판정해 차단 후보 규칙 만들기 (판정기에는 미연결) |
남은 약점: 옛 공개 커밋 5b9af2f에 1단계 메모가 그대로 남아 있습니다. 원본 API에 직접 보내는 비로그인 요청 시험은 아직 못 했습니다.
| 문서 | 내용 |
|---|---|
| 단계별 기록 | 5단계 현재 상태, API 표, 확인 방법, 2단계 검색 결과와 남은 약점 |
| 공격 탐지 보너스 | xdr-01 무차별 로그인, xdr-02 웹 주입 |
| 시작 틀 안내 | 1단계 배포 방법과 시작 틀의 자동 처리 |
| AGENTS.md | 코딩 도구에 주는 공통 규칙 |
npm ci
npm run build -- --local # 로컬 화면만 확인 (서버 함수 · 로그인 · 배포 증명 아님)
npm run test:r5
로컬 시험과 npm run bundle 점검은 직접 보낸 요청의 기록이며 심판의 판정이 아닙니다.