PreviewFile IconPreviewFile.dev

安全与隐私

了解 PreviewFile.dev 如何通过全面的安全功能保护您用户的文件

安全与隐私

PreviewFile.dev 从底层开始就是为了保护您用户的文件而构建。每个功能都以安全和隐私为核心设计。

核心安全功能

🔒 动态水印

添加自定义文本水印以保护敏感文档并防止未经授权的共享。

  • 自定义文本:添加公司名称、保密声明或用户标识
  • 位置控制:在文档上叠加水印
  • 不可移除:水印在预览期间渲染,不存储在文件中
  • 使用场景:法律文件、合同、机密报告

⏱️ 限时访问(TTL)

设置过期时间以确保链接不会无限期保持可访问状态。

  • 灵活时长:从 15 分钟到 7 天(受套餐限制)
  • 自动过期:链接在 TTL 过期后变得不可访问
  • 无需手动清理:服务器自动处理过期会话
  • 使用场景:临时文档共享、时效性文件

🚫 下载保护

阻止查看者下载文件,同时仍允许预览访问。

  • 仅预览模式:用户可以查看但不能在本地保存文件
  • 禁用右键:防止简单的下载尝试
  • DevTools 保护:额外的层级防止技术绕过
  • 使用场景:敏感 PDF、机密演示文稿、专有文档

🔥 一次性访问(阅后即焚)

创建在单次查看后自毁的链接。

  • 单次使用链接:首次访问后自动过期
  • 查看跟踪:系统记录链接何时被访问
  • 完美前向保密:一旦查看,链接无法重复使用
  • 使用场景:高度机密文档、密码重置、临时凭证

🔗 防盗链保护

防止未经授权的嵌入和带宽盗用。

  • Referer 验证:仅允许从已批准的域访问
  • IP/User-Agent 绑定:将会话绑定到特定客户端
  • CloudFront 签名 URL:密码学安全的访问令牌
  • 使用场景:保护 CDN 带宽、控制分发

隐私设计

客户端渲染

  • 不保留数据:文件内容不会存储超过临时链接
  • 带宽高效:尽可能直接客户端到存储的连接
  • 服务器转换:由于技术限制,doc/office 文件需要进行服务器端转换

最小化数据收集

我们只收集提供服务所需的必要数据。

  • 仅文件元数据:文件名、大小、MIME 类型、过期时间
  • 不扫描内容:文件内容永远不会被分析或索引
  • 可选用户数据:基本使用无需身份验证
  • 审计日志:访问日志仅保留安全所需的时间

安全存储集成

文件存储在行业标准的 S3 兼容存储中。

  • 静态加密:S3 服务器端加密(SSE-S3)
  • 传输加密:所有连接使用 HTTPS/TLS
  • 私有桶:存储不可公开访问
  • 签名 URL:限时、密码学签名的访问令牌

合规与最佳实践

数据驻留

  • 多区域支持:选择最接近用户的存储区域
  • 私有部署:自托管以完全控制数据
  • GDPR 考虑:最小化 PII 收集,按请求删除数据

访问控制

  • 用户认证:可选的基于 Clerk 的身份验证
  • API 密钥管理:安全的基于令牌的 API 访问
  • 速率限制:防止滥用和 DDoS

安全头

  • 内容安全策略(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 和一次性链接防止不受控制的共享
  • ✅ 数据窃取:下载保护和水印阻止复制
  • ✅ 盗链/带宽盗用:Referer 验证和签名 URL
  • ✅ XSS/注入攻击:严格的 CSP 和输入验证

下一步

  • 探索 API 文档 以实现安全功能
  • 查看 定价 了解企业安全选项
  • 联系我们获取安全问卷或合规文档

On this page