43 lines
2.1 KiB
Markdown
43 lines
2.1 KiB
Markdown
---
|
|
phase: implementation
|
|
agent: implementation-advisor
|
|
agent_version: 1
|
|
generated_at: 2026-06-29T12:10:00+09:00
|
|
workstream: W3-3-posting-board-fix1
|
|
concerns: []
|
|
concerns_checked: true
|
|
planned_workers: 0
|
|
actual_workers: 0
|
|
---
|
|
|
|
# 파일 소유권 맵 (W3-3 fix1 — backward 보정)
|
|
|
|
> 발원 = 구현단계(§2.6). verification FAIL + adversarial SSRF 감사 결함 전수 보정.
|
|
> 보정 대상 파일이 2개(SsrfSafeFetcher / FeedParser, 보안핵심 + 강결합)이고 두 파일 모두
|
|
> 내부 로직이 상호 일관성을 요구하는 보안 수정이라 advisor 직접 편집을 선택(아래 계량).
|
|
> 정상 산출물(XSS sanitize·매퍼·컨트롤러·DDL·OgPreviewService) 불변.
|
|
|
|
## 변경 파일 (결함번호 매핑)
|
|
|
|
| 파일 | 변경 유형 | 결함 | 담당 |
|
|
|---|---|---|---|
|
|
| src/main/java/com/pandoli365/bibimbap/security/SsrfSafeFetcher.java | modify | 결함1·2·3 | advisor 직접 |
|
|
| src/main/java/com/pandoli365/bibimbap/service/FeedParser.java | modify | 결함4 | advisor 직접 |
|
|
| src/test/java/com/pandoli365/bibimbap/security/SsrfSafeFetcherTest.java | modify | 결함5 (+2·3 커버리지) | advisor 직접 |
|
|
| Dockerfile | 변경 없음 | 결함1 (불요) | - |
|
|
| pom.xml | 변경 없음 | 결함1 (불요) | - |
|
|
|
|
> 결함4 의 FeedParserTest 픽스처는 DOCTYPE 미포함(정상 RSS) — 픽스처 정정 불요.
|
|
> "Content is not allowed in prolog" / "DOCTYPE is disallowed" stderr 는 broken-input/XXE
|
|
> 테스트의 정상(graceful empty) 부산물 로그였음. 유일 Failure 는 pubDate→publishedAt null.
|
|
|
|
## 계량 (advisor 직접 선택 근거)
|
|
- planned_workers: 0 / actual_workers: 0 (worker 미spawn)
|
|
- 사유: 파일 수 3 < 8 임계 + 결함1/2/3 이 동일 파일(SsrfSafeFetcher) 내 강결합 보안 로직
|
|
(연결 메커니즘 변경 ↔ 포트 allowlist ↔ IP 차단대역 ↔ 테스트 훅)이라 단일 손에서
|
|
일관성 보장 필요 → 병렬화 이득 0, 충돌 위험만 증가. 보안핵심은 분할보다 일관 편집 우선.
|
|
|
|
## 충돌 회피
|
|
- 각 파일 정확히 1 손(advisor). 교차 소유 0.
|
|
- 다른 W·정상 산출물 미접근.
|