Skip to content

security: 면접 공유 토큰 생성과 만료 정책 추가 #21

Description

@co2plant

우선순위: P2

현재 문제

src/lib/interviews.tsshareId의 문자 형식과 16자 이상 길이만 확인함. 안전한 난수 생성, 최소 엔트로피, 만료 시각, 조회 제한을 강제하는 경로가 없음.

영향

예측 가능한 ID를 사용하거나 링크가 유출되면 누구나 인증 없이 비공개 면접 내용을 열 수 있음. noindex는 접근 제어가 아님.

기대 동작

  • CSPRNG 기반 충분한 엔트로피의 토큰 생성
  • 생성 시 만료 시각과 활성 상태 저장
  • 만료·비활성 토큰은 항상 접근 거부
  • 필요하면 조회 rate limit과 토큰 회전 지원

검증 방법

  • 생성 토큰의 길이와 엔트로피 정책 확인
  • 만료 전 접근 성공, 만료 후 접근 실패
  • 비활성화와 회전 후 이전 토큰 접근 실패
  • 예측 가능한 수동 ID 입력 거부

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