Skip to content

fix(cover-letter): 자소서 입력 하드닝 재머지 (#129 누락분)#130

Merged
i3months merged 1 commit into
devfrom
feature/cover-letter-hardening-reland
Jun 29, 2026
Merged

fix(cover-letter): 자소서 입력 하드닝 재머지 (#129 누락분)#130
i3months merged 1 commit into
devfrom
feature/cover-letter-hardening-reland

Conversation

@i3months

Copy link
Copy Markdown
Member

변경 사항

#129(자소서) 리뷰 후 푸시했던 하드닝 커밋이 dev 머지에 누락된 것을 발견 → 재머지. (커밋 2ff40ff cherry-pick)

회의적 max 리뷰(3/3·2/3 검증)에서 잡힌 결함:

  • [HIGH] 자소서 생성 API 서버측 입력 상한 부재 — JSON @RequestBody는 multipart 20MB 제한이 적용되지 않아 거대 payload(DoS·AI 비용 증폭) 가능. CoverLetterCreateRequest에 bean-validation 추가: title @Size(200), items @NotEmpty @Size(max=30) + List<@Valid Item>, Item.question @Size(500)/answer @Size(5000). (title 200자 초과도 이제 400, 기존 500)
  • [MEDIUM] 파싱 실패 로그에 자소서 답변 본문(PII) 평문 기록 → 길이만 기록.

⚠️ 현재 운영(dev 배포)에는 이 보안 픽스가 빠져 있습니다. 이 PR 머지 시 반영됩니다.

검증: 컴파일 통과(원 커밋은 백엔드 전체 테스트 통과 상태였음), OpenAPI maxLength 포함.

🤖 Generated with Claude Code

회의적 max 리뷰(3/3·2/3 검증) 통과 결함 수정.

- [HIGH] 자소서 생성 API 서버측 입력 상한 부재(JSON @RequestBody 는 multipart 20MB
  미적용 → DoS/AI 비용 증폭). CoverLetterCreateRequest 에 bean-validation:
  title @SiZe(200), items @notempty @SiZe(max=30) + List<@Valid Item>,
  Item.question @SiZe(500)/answer @SiZe(5000). title 200자 초과도 이제 400(기존 500).
- [MEDIUM] 파싱 실패 로그에 자소서 답변 본문(PII) 평문 기록 → 길이만 기록으로 변경.

백엔드 전체 테스트 통과, OpenAPI(maxLength)·프론트 타입 재생성, 프론트 빌드 통과.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@vercel

vercel Bot commented Jun 29, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
stackup Ready Ready Preview, Comment Jun 29, 2026 3:06am

@i3months i3months merged commit 2c6df0a into dev Jun 29, 2026
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant