Skip to content

security: 관리자 변경 API에 CSRF 요청 검증 추가 #15

Description

@co2plant

우선순위: P2

현재 문제

src/app/admin/api/categories/route.tssrc/app/admin/api/posts/[id]/**/route.ts는 세션만 확인하고 Origin이나 Fetch Metadata를 검증하지 않음. SameSite=Lax만으로는 동일 사이트의 신뢰하지 않는 서브도메인 조건을 차단하지 못함.

영향

관리자가 로그인한 상태에서 공격자 페이지를 방문하면 저장, 발행, 보관, 삭제 또는 업로드 요청이 전달될 수 있음.

기대 동작

  • 상태 변경 API에서 허용된 Origin 검증
  • Sec-Fetch-Site: cross-site 요청 거부
  • 필요한 경우 CSRF token과 Content-Type 검증 추가
  • 공통 검증 함수 사용

검증 방법

  • 다른 Origin과 cross-site 요청이 403 반환
  • 동일 Origin 정상 요청 성공
  • 모든 관리자 변경 API에 동일한 검증 적용

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions