跳到正文

数据保护影响评估 (DPIA)

QR Branding API — AI 功能

项目内容
日期2026-03-08
数据控制者QR Branding (Quartzon)
版本1.0
状态已批准
下次审查2026-09-08

1. 处理活动描述

1.1 处理的性质

QR Branding 以两种模式提供 AI 驱动的二维码生成:

  • 使用 QR Branding 自己的 LLM 提供商账户: qr-branding.com 上的 AI 设计器和市场托管端点(POST /api/qr/ai/generate-managed)。由内部的提供商回退链(Groq、Google Gemini、OpenAI)处理每个请求。
  • 使用客户自己的密钥(BYOK): 市场端点 POST /api/qr/ai/generate。客户提供自己的 API 密钥并选择提供商(OpenAI、Anthropic、Google、Mistral、Cohere、Groq、xAI、DeepSeek 或 Qwen,或客户自己的 OpenAI 兼容端点)。

在两种模式下,用户都发送自然语言的设计提示词(例如“为科技公司设计的现代蓝色二维码”)以及二维码内容(URL、文本、vCard 等)。系统会:

  1. 仅将设计提示词和生成参数发送给外部 LLM 提供商:在 QR Branding 回退链中处理该请求的提供商,或用户选择的提供商(BYOK)。
  2. 从 LLM 接收 JSON 格式的设计配置。
  3. 使用提供的内容和建议的设计生成二维码。
  4. 将二维码图片返回给用户。

1.2 范围

  • 处理的数据: 设计提示词(自由文本)、生成参数(风格预设、创意度、严格可扫描性)、二维码内容(URL、文本、vCard 联系信息、WiFi 凭据、地理位置)、客户的 API 密钥(仅限 BYOK,临时)。
  • 估计量: 每个 IP 每分钟最多 15 次 AI 请求,全局每分钟 100 次生成。
  • 受影响的数据主体: qr-branding.com 网站的用户、API 用户(开发者、企业),以及间接地,其数据出现在二维码内容中的人员(vCard 联系人)。
  • 地理范围: 全球(RapidAPI Marketplace 上的公开 API)。

1.3 背景

  • 无状态服务:没有数据库,二维码内容不会持久化。
  • QR Branding 自己的账户(网站和托管端点): QR Branding 持有自己在 Groq、Google(Gemini)和 OpenAI 处的 API 密钥,这些提供商作为其处理者,并列于子处理者页面。不会向它们发送电子邮件、账单数据、IP 地址或客户标识符。
  • BYOK(Bring Your Own Key,自带密钥)模式(POST /api/qr/ai/generate): 客户在每次请求时提供自己的 API 密钥;对于这些请求,QR Branding 不使用自己的账户。
  • 二维码内容绝不会发送给 AI 提供商,发送的只有设计提示词。
  • LLM 生成的敏感字段(URL、base64)在渲染前会被置空。
  • 服务运行在 Azure Functions(Consumption Plan)上。
  • 在 BYOK 端点上,与 LLM 提供商的合同关系是客户与提供商之间的直接关系。

1.4 目的

让用户能够通过自然语言描述生成个性化的二维码设计,免去手动配置参数的需要。


2. 必要性与相称性

2.1 法律依据

履行合同(GDPR 第 6 条第 1 款 (b) 项):该处理是提供用户所请求的具体服务所必需的。

2.2 数据最小化

原则实现方式
仅限必要数据只把提示词发送给 LLM,不发送二维码内容
不存储在内存中处理;提示词文本和二维码内容在 HTTP 响应后丢弃。只有生成的设计配置可能被缓存最多 30 天,其键由提示词和参数的 SHA-256 哈希派生
不进行画像不创建用户画像或请求历史
匿名化日志中的 IP 地址经过匿名化(屏蔽最后一个八位组)
隔离在数据流中将二维码内容与 AI 提示词分开

2.3 相称性

该处理是相称的,因为:

  • 用户主动选择使用 AI 功能(独立的端点)。
  • 在 BYOK 端点上,用户自行选择 LLM 提供商;在网站和托管端点上,提供商是子处理者页面所列的处理者之一。
  • 只传输设计提示词(不传输二维码内容中的个人数据)。
  • 对于根据自然语言生成设计,不存在侵扰性更低的替代方案。

3. 风险识别与评估

3.1 已识别的风险

#风险可能性影响等级缓解措施
R1提示词注入:用户在提示词中注入恶意指令中中中<user_request> 分隔符、系统提示词中的防泄露指令、LLM 处理后将 URL/base64 字段置空
R2提示词中含 PII:用户在设计描述中包含个人数据中低低不存储提示词文本(缓存只保存以哈希派生的键存储的生成设计);提示词在发送时不附带任何用户标识符;有书面的使用政策
R3系统提示词外泄:攻击者提取系统指令低低低系统提示词中的防泄露尾注、输出净化(移除 HTML 标签)
R4国际传输:提示词被转发给欧洲经济区以外的提供商中低低QR Branding 的账户:Groq、Google 和 OpenAI(美国)依据各提供商的数据处理条款作为处理者;只发送设计提示词和参数。BYOK:客户与提供商存在直接关系并有自己的 DPA;QR Branding 仅作为技术中介。在隐私政策和子处理者页面中披露
R5LLM 提供商的保留:提供商根据自身政策保留数据中低低QR Branding 的账户:受各提供商与 QR Branding 之间的数据处理条款约束。BYOK:依据客户与提供商之间的条款,由客户负责
R6含恶意内容的 LLM 响应:XSS、恶意 URL中中中带超时的 HTML 净化正则、URL/base64 字段置空、反序列化时 MaxDepth=32
R7钱包耗尽攻击(Denial of wallet):滥用 AI 端点推高成本中高高速率限制(每个 IP 每分钟 15 次 AI,全局每分钟 100 次)、带信号量的 RenderThrottle、functionTimeout 1:30
R8API 密钥泄露到日志中低高中SanitizeForLog() 对 API 密钥模式脱敏,错误消息不含 PII

3.2 数据流图

User → qr-branding.com or RapidAPI Proxy → Azure Functions
                              ↓
                    [Design prompt + parameters only]
                              ↓
                    LLM provider (QR Branding's fallback chain,
                    or the user's choice on BYOK)
                              ↓
                    [Design JSON config]
                              ↓
                    QR Rendering (SkiaSharp)
                    + QR content (never leaves the server)
                              ↓
                    QR image → User

4. 缓解措施

4.1 已实施的技术措施

措施缓解的风险状态
提示词分隔符(<user_request>)R1✅ 已实施
系统提示词中的防泄露尾注R1、R3✅ 已实施
将 LLM 返回的 URL/base64 字段置空R1、R6✅ 已实施
带超时(3 秒)的 HTML 净化正则R6✅ 已实施
JsonSerializer 中 MaxDepth=32R6✅ 已实施
AI 速率限制(每个 IP 每分钟 15 次,全局每分钟 100 次)R7✅ 已实施
RenderThrottle(信号量,并发 4)R7✅ 已实施
functionTimeout 1:30R7✅ 已实施
SanitizeForLog():API 密钥脱敏R8✅ 已实施
IP 匿名化(最后一个八位组)R2✅ 已实施
不含 PII 的错误消息R2✅ 已实施
每次 LLM 调用设置输出 token 上限R7✅ 已实施
Content-Length + 读取后的大小检查(1MB)R7✅ 已实施
分离 Google 的 systemInstructionR1✅ 已实施

4.2 组织措施

措施缓解的风险状态
已发布的隐私政策R4、R5✅ 已实施
在文档和子处理者页面中披露 LLM 提供商R4✅ 已实施
与使用 QR Branding 账户的 LLM 提供商(Groq、Google、OpenAI)签订 DPAR4、R5⚠️ 待确认
与 BYOK 端点上的 LLM 提供商签订 DPAR5客户的责任
书面化的 DSR 处理程序通用✅ 已书面化
事件响应计划通用✅ 已书面化

5. 结论

5.1 剩余风险

在落实所有技术和组织措施后,剩余风险评估为低:

  • 处理是无状态的:二维码内容和提示词文本都不会持久化(提示词缓存只保存以哈希派生的键存储的生成设计)。
  • 二维码内容(可能较为敏感)绝不会离开 Azure 基础设施。
  • 只有设计提示词(很少包含 PII)会传输给第三方。
  • 大型审计中提出的所有技术缓解措施均已实施并验证。

5.2 决定

✅ 在现有措施下,可以开展该处理。

由于剩余风险较低,无需事先咨询监管机构(GDPR 第 36 条)。

5.3 审查

本 DPIA 将在以下情况下审查:

  • 至少每 6 个月一次。
  • 新增 LLM 提供商时。
  • AI 端点的数据流发生变化时。
  • 引入可能包含敏感数据的新型二维码内容时。

本文件生成于 2026-03-08。下次计划审查:2026-09-08。