Skip to content

Security: Implement server-side path traversal validation and canonicalization #422

@0010capacity

Description

@0010capacity

기능 개요

클라이언트 사이드 경로 검증만으로는 부족하므로 Rust 백엔드에서 강화된 경로 검증 구현

구현 상세

  • tauri-api.ts의 validatePath()는 UX 용도로만 사용
  • Rust 백엔드 Command 핸들러에서 모든 경로 요청 검증
  • 경로 정규화(Canonicalization) 수행
    • symlink 추적 및 정규화
    • .. 문자열이 아닌 실제 경로 기반 검증
  • 워크스페이스 루트 디렉토리 외부 접근 불가능하도록 강제
  • 모든 파일 작업 시 범위 체크:
    • 읽기: workspace_path 내부만 허용
    • 쓰기: workspace_path 내부만 허용
    • 삭제: workspace_path 내부만 허용
  • 상위 디렉토리 접근 감지 시 에러 반환

예상 효과

  • 클라이언트 변조 공격 방어
  • /etc/passwd 등 민감한 시스템 파일 접근 방지
  • Path Traversal 공격 완전 차단
  • 애플리케이션 보안 단계 강화

관련 파일

  • src/tauri-api.ts (line 8)
  • src-tauri/src/lib.rs
  • src-tauri/src/services/path_validator.rs

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't workingpriority:highHigh priority - needs immediate attention

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions