PreviewFile IconPreviewFile.dev
문서

보안 및 개인정보보호

PreviewFile.dev가 포괄적인 보안 기능으로 사용자의 파일을 보호하는 방법을 알아보세요

보안 및 개인정보보호

PreviewFile.dev는 사용자의 파일을 보호하기 위해 처음부터 구축되었습니다. 모든 기능은 보안과 개인정보보호를 염두에 두고 설계되었습니다.

핵심 보안 기능

🔒 동적 워터마크

민감한 문서를 보호하고 무단 공유를 방지하기 위한 사용자 정의 텍스트 워터마크를 추가합니다.

  • 사용자 정의 텍스트: 회사명, 기밀성 고지, 사용자 식별자 추가
  • 위치 제어: 문서 전체에 워터마크 오버레이
  • 제거 불가: 워터마크는 미리보기 중에 렌더링되며 파일에 저장되지 않음
  • 사용 사례: 법적 문서, 계약서, 기밀 보고서

⏱️ 시간 제한 액세스(TTL)

링크가 무기한 접근 가능한 상태로 남지 않도록 만료 시간을 설정합니다.

  • 유연한 기간: 15분에서 7일까지
  • 자동 만료: TTL 만료 후 링크가 접근 불가능해짐
  • 수동 정리 불필요: 서버가 만료된 세션을 자동으로 처리
  • 사용 사례: 임시 문서 공유, 시간에 민감한 파일

🚫 다운로드 보호

미리보기 액세스를 허용하면서도 시청자가 파일을 다운로드하는 것을 방지합니다.

  • 미리보기 전용 모드: 사용자는 볼 수 있지만 로컬에 저장할 수 없음
  • 우클릭 비활성화: 쉬운 다운로드 시도를 방지
  • DevTools 보호: 기술적 우회를 방지하는 추가 레이어
  • 사용 사례: 민감한 PDF, 기밀 프레젠테이션, 독점 문서

🔥 일회성 액세스(Burn After Reading)

한 번의 조회 후 자동으로 파괴되는 링크를 생성합니다.

  • 일회성 링크: 첫 번째 액세스 후 자동 만료
  • 조회 추적: 시스템이 링크가 액세스된 시점을 기록
  • 완벽한 전방 비밀성: 한 번 조회되면 링크를 재사용할 수 없음
  • 사용 사례: 극도로 기밀한 문서, 비밀번호 재설정, 임시 자격 증명

🔗 핫링크 보호

무단 임베딩과 대역폭 도용을 방지합니다.

  • 리퍼러 검증: 승인된 도메인에서만 액세스 허용
  • IP/User-Agent 바인딩: 특정 클라이언트에 세션 바인딩
  • CloudFront 서명된 URL: 암호학적으로 안전한 액세스 토큰
  • 사용 사례: CDN 대역폭 보호, 배포 제어

디자인별 개인정보보호

클라이언트 사이드 렌더링

  • 데이터 보존 없음: 파일 콘텐츠가 임시 링크를 넘어 저장되지 않음
  • 대역폭 효율성: 가능한 경우 직접적인 클라이언트-스토리지 연결
  • 서버 변환: 기술적 제한으로 인해 doc/office 파일은 서버 측 변환이 필요합니다

최소 데이터 수집

서비스 제공에 필요한 것만 수집합니다.

  • 파일 메타데이터만: 파일명, 크기, MIME 타입, 만료 시간
  • 콘텐츠 스캔 없음: 파일 콘텐츠가 분석되거나 인덱싱되지 않음
  • 선택적 사용자 데이터: 기본 사용에서는 인증이 선택사항
  • 감사 로그: 액세스 로그는 보안에 필요한 기간만 보관

보안 스토리지 통합

파일은 업계 표준 S3 호환 스토리지에 저장됩니다.

  • 휴지 상태 암호화: S3 서버 사이드 암호화(SSE-S3)
  • 전송 중 암호화: 모든 연결에 HTTPS/TLS
  • 프라이빗 버킷: 스토리지가 공개적으로 접근 가능하지 않음
  • 서명된 URL: 시간 제한이 있는 암호학적으로 서명된 액세스 토큰

컴플라이언스 및 모범 사례

데이터 거주지

  • 다중 리전 지원: 사용자에게 가장 가까운 스토리지 리전 선택
  • 프라이빗 배포: 완전한 데이터 제어를 위한 셀프 호스팅
  • GDPR 고려사항: 최소 PII 수집, 요청 시 데이터 삭제

액세스 제어

  • 사용자 인증: 선택적 Clerk 기반 인증
  • API 키 관리: 안전한 토큰 기반 API 액세스
  • 속도 제한: 남용 및 DDoS로부터 보호

보안 헤더

  • Content Security Policy (CSP): XSS 공격 방지
  • X-Frame-Options: 클릭재킹 방지
  • Strict-Transport-Security: HTTPS 강제

개발자를 위해

API 보안

// 모든 API 요청에는 인증이 필요
const response = await fetch('https://previewfile.dev/api/u', {
  method: 'POST',
  headers: {
    'Authorization': `Bearer ${API_KEY}`,
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    url: 'https://example.com/confidential.pdf',
    ttlMinutes: 60,
    watermark: '기밀 - 내부 사용만',
    noDownload: true,
    oneTime: false,
  }),
});

보안 설정 예제

// 고도로 보안된 미리보기 링크 생성
const securePreview = await trpc.preview.create.mutate({
  file: uploadedFile,
  ttlMinutes: 30,                    // 30분 후 만료
  watermark: `${user.email} - ${new Date().toISOString()}`,  // 사용자 + 타임스탬프 워터마크
  noDownload: true,                   // 다운로드 방지
  oneTime: true,                      // 일회성 링크
});

위협 모델

PreviewFile.dev는 다음으로부터 보호합니다:

  • ✅ 무단 배포: TTL 및 일회성 링크가 통제되지 않은 공유를 방지
  • ✅ 데이터 도용: 다운로드 보호 및 워터마크가 복사를 방지
  • ✅ 핫링킹/대역폭 도용: 리퍼러 검증 및 서명된 URL
  • ✅ XSS/인젝션 공격: 엄격한 CSP 및 입력 검증

다음 단계

  • API 문서를 탐색하여 보안 기능을 구현하세요
  • 가격을 확인하여 엔터프라이즈 보안 옵션을 살펴보세요
  • 보안 설문조사 또는 컴플라이언스 문서에 대해서는 문의하세요

On this page