Skip to content

Security: wildbyteai/promptlens

Security

SECURITY.md

安全政策

PromptLens 是一个本地优先的 Chrome 扩展。它不提供后端服务,不内置模型账号,也不收集遥测数据。安全边界主要取决于浏览器扩展权限、本地存储和用户自行配置的 AI 服务。

支持版本

版本 支持状态
0.3.x 支持安全修复
0.2.x 支持安全修复
0.1.x 支持安全修复

报告安全问题

如果你发现安全问题,请优先使用 GitHub Security Advisories 报告。请不要在公开 Issue 中披露可被利用的漏洞细节、API Key、私有图片或完整请求头。

报告内容建议包含:

  • 漏洞类型。
  • 影响范围。
  • 复现步骤。
  • 相关浏览器版本。
  • 可能的修复建议。

如果无法使用 GitHub Security Advisories,也可以先创建一个不包含利用细节的公开 Issue,请维护者转入私下沟通。

数据处理边界

PromptLens 的数据处理方式如下:

  • API Key:存储在浏览器本地 chrome.storage.local
  • 模型配置:AI Base URL、API Key、Model 和当前输出模板存储在本地。
  • 图片数据:分析时会发送到用户配置的 AI Base URL。
  • 临时输入:大图片和截图通过 IndexedDB 临时中转,结果页读取后删除。
  • 结果导出:JSON / Markdown 导出只包含文本结果和模板元数据,不包含图片缩略图。
  • 历史记录:v0.3.0 起提供可选本地历史记录,默认关闭;开启后最多保存 200 条,保存来源域名、原始图片 URL、页面 URL、模板信息、结果文本和结果 JSON,不保存图片缩略图。完整 URL 可能包含签名参数、私有路径、客户/项目/品牌信息;结果 JSON 可能包含专业用途 Prompt 候选文本,这些文本是对图片内容的进一步文本化推断,可能包含人物、品牌、商品、场景、屏幕内容、商业素材或第三方作品风格等信息。用户可删除单条或清空全部历史。
  • ChatGPT Plus 辅助模式:图片和指令只在浏览器本地生成。PromptLens 不会调用 API、不会自动发送到 ChatGPT、不会读取 ChatGPT 回复,也不会保存 ChatGPT 网页端回复历史。用户主动上传或点击实验性交接后,数据受 OpenAI / ChatGPT 的隐私政策、账号设置和使用限制约束。
  • 实验性 ChatGPT 交接: 可选的 chatgpt.com 访问权限只在用户点击交接按钮后请求。该权限用于打开 ChatGPT、等待页面稳定,并尝试把本地准备好的 JPEG 和分析指令填入 ChatGPT 页面。PromptLens 不读取 ChatGPT 回复,不自动发送消息,不会存储 ChatGPT 页面内容。
  • 遥测:不收集遥测数据。
  • 后端服务:项目不包含默认后端或代理服务。
  • firstSuccessChecklistCollapsed:本地 UI 偏好,记录首次成功检查列表是否收起。

PromptLens 没有后端,不会接收用户图片、API Key、提示词、业务上下文或模型响应。分析期间,浏览器会将请求发送到用户配置的 Base URL。用户应仅配置自己信任的模型服务,尤其是在分析客户资产、内部系统、个人信息、未发布产品或敏感商业资料时。

请注意:用户配置的第三方 AI 服务可能会记录请求、图片或提示词。请自行确认服务商的数据政策和服务条款。

权限模型

扩展使用以下权限:

  • contextMenus:创建右键菜单。
  • storage:保存本地配置和临时输入。
  • activeTab:用户触发框选截图时访问当前标签页。
  • scripting:注入框选截图脚本和样式。
  • optional_host_permissions:按需请求 API origin 访问权限和远程图片读取权限。

<all_urls> 是可选 host permission,不会在安装时请求。只有当用户在设置页点击授权按钮时,才会请求所有网站图片读取权限。

v0.6.0 的 ChatGPT Plus 辅助模式不使用 downloads 权限;实验性 ChatGPT 交接只在用户点击按钮后按需请求可选的 https://chatgpt.com/* 权限,用于打开 ChatGPT、等待页面稳定,并尝试把本地准备好的 JPEG 和分析指令填入 ChatGPT 页面。PromptLens 不自动发送消息、不读取 ChatGPT 回复,也不存储 ChatGPT 页面内容。

安全设计原则

  • 默认不请求全部网站权限。
  • 不使用 eval() 或动态代码执行。
  • 不加载外部脚本、样式、字体或图片资源。
  • 不把远端错误正文原样暴露给用户。
  • 用户文本和模型返回内容通过 textContent 渲染。
  • 对图片 MIME、大小和 data URL 格式进行校验。
  • 拒绝 SVG 图片,降低脚本与解析风险。
  • AI Base URL 默认要求 HTTPS,本地开发例外仅限 localhost127.0.0.1

已知限制

  • 浏览器本地存储并不是硬件级密钥保险箱。请为扩展使用专用 API Key,并限制 Key 的额度和权限。
  • 如果用户配置的 AI 服务本身不可信,图片和提示词可能被第三方记录。
  • 框选截图只能处理当前可见视口,不等同于整页隔离沙箱。
  • Chrome 扩展权限模型会随浏览器版本变化,发布新版本前应重新验证权限行为。

安全建议

  • 使用单独的低额度 API Key。
  • 定期轮换 API Key。
  • 不要分析包含敏感个人信息、商业机密或受合规限制的图片,除非你确认配置的模型服务可处理此类数据。
  • 如果开启本地历史记录,请注意生成的 prompt 文本本身也可能包含敏感、机密、受版权限制或未授权图片的可识别信息;使用后可在历史记录页删除单条记录或清空全部历史。
  • 优先使用 HTTPS API 服务。
  • 从源码加载扩展前审查代码改动。

There aren't any published security advisories