-
Notifications
You must be signed in to change notification settings - Fork 5
Open
Labels
Description
OWASP 카테고리
- A05:2025 - Injection
심각도
🔴 Critical
현황
서버/클라이언트 모두 입력 검증이 없음
발견된 문제
1. 서버 측 검증 없음
// backend/lambda/src/index.ts:63
const newTodo = await todoService.createTodo(JSON.parse(body)); // 검증 없음- JSON.parse 후 직접 DB 저장
- 스키마 검증 없음
- 필드 타입/길이 미검증
2. 클라이언트 측 검증 미흡
// frontend/src/components/AddTodoForm.tsx:20-22
onSubmit({
title: title.trim(), // trim만 수행
description: description.trim() || undefined,
});- XSS 방어 없음
- 입력 길이 제한 없음
3. XSS 가능성
악의적 입력 예시:
{
"title": "<img src=x onerror='alert(document.cookie)'>",
"description": "<script>fetch('https://attacker.com')</script>"
}영향받는 파일
backend/lambda/src/index.tsbackend/lambda/src/todoService.tsfrontend/src/components/AddTodoForm.tsxfrontend/src/components/EditTodoDialog.tsx
권장 조치
- 백엔드에 Joi/Zod 스키마 검증 추가
- 입력 길이 제한 (title: 100자, description: 500자 등)
- 프론트엔드에 DOMPurify로 sanitization
- API Gateway Request Validator 설정
참고
Reactions are currently unavailable