Skip to content

Security: haotangyuan/DevClip

Security

docs/SECURITY.md

DevClip 安全设计

安全原则

  • 本地优先:核心剪贴板内容、分类、搜索和转换默认离线。
  • 最小保留:越敏感的内容保留时间越短。
  • 默认脱敏:日志、搜索索引、导出和 UI 预览都遵循敏感等级。
  • 显式授权:自动粘贴和辅助功能权限只在用户主动启用后请求。
  • 可测试边界:系统 API 通过协议隔离,安全策略可以单元测试。

敏感等级

none

  • 正常保存。
  • 可进入全文索引。
  • 可导出。

potential

  • 默认遮罩。
  • 默认 10 分钟后过期。
  • 可由用户明确保留。
  • 日志只允许记录摘要、类型和哈希前缀。

secret

  • 默认只保存在内存。
  • 默认 60 秒后清除。
  • 不进入全文索引。
  • 不写完整日志。
  • 不加入导出。
  • 不发送网络。
  • 用户必须明确选择“保留此记录”才可持久化。

检测范围

  • PEM Private Key。
  • Bearer Token。
  • JWT。
  • 常见 API Key。
  • AWS Access Key。
  • GitHub Token。
  • 数据库连接串中的用户名密码。
  • .env 密钥。
  • 高熵长字符串。
  • 验证码。
  • 密码管理器来源应用。

忽略应用

默认忽略规则覆盖常见密码管理器和钥匙串类应用。后续实现中,忽略规则应支持:

  • bundle identifier 精确匹配。
  • bundle identifier 前缀匹配。
  • 用户自定义规则。
  • 临时禁用采集。

日志策略

  • 日志不得输出完整剪贴板正文。
  • secret 只允许记录事件类型、敏感分类和脱敏原因。
  • potential 最多记录短摘要,摘要必须有长度上限。
  • 错误日志不得包含转换输入正文。
  • Hash 可用于排错,但不得作为可逆内容替代品误用。

导出策略

  • 导出默认排除 secret。
  • potential 导出前需要明确确认。
  • 加密导出使用 CryptoKit AES-GCM。
  • 导出清单记录版本、创建时间、条目数量和是否排除敏感内容。

自动粘贴权限

  • 默认不请求辅助功能权限。
  • 用户开启自动粘贴时才触发权限检查。
  • 无权限时降级为 copyOnly。
  • CGEvent 失败不得丢失剪贴板内容。

网络策略

  • 核心功能无网络访问。
  • TransformAction 默认无网络能力。
  • Sparkle 更新检查属于发布阶段独立接口,不接收剪贴板内容。
  • 未来任何网络功能都必须经过单独安全审查。

There aren't any published security advisories