属于我们的Compliance & Regulation系列
阅读完整指南隐私设计:软件开发团队实用指南
“设计保护隐私”不是一项建议,而是 GDPR 第 25 条中的一项法律要求。 组织必须实施“适当的技术和组织措施”,以确保数据保护原则融入到处理本身中。然而,大多数开发团队都将隐私视为事后的想法,在架构确定后才添加同意书和 cookie 横幅。
本指南将隐私设计的七个基本原则转化为可操作的工程实践、设计模式和代码级实现。
要点
- 隐私设计意味着将隐私嵌入到架构决策中,而不是稍后将其添加为功能
- 模式级别的数据最小化从一开始就防止过度收集
- 假名化和加密在发生违规时提供深度防御
- 隐私保护分析可以在不暴露个人用户数据的情况下提供业务洞察
适用于软件的七个原则
1. 主动而非被动
在收集数据之前而不是在数据泄露之后建立隐私控制。
实践中:
- 将隐私要求纳入用户故事验收标准中
- 在架构审查期间运行隐私威胁模型
- 为每个涉及用户数据的拉取请求创建隐私清单
2.默认设置为隐私
用户不需要采取行动来保护他们的隐私。
实践中:
- 新用户帐户默认最小数据共享
- 分析跟踪是选择加入,而不是选择退出
- 个人资料可见性默认为私人
- 数据保留默认为所需的最短期限
// Default privacy settings for new users
const DEFAULT_PRIVACY_SETTINGS = {
profileVisibility: 'private', // Not 'public'
analyticsTracking: false, // Opt-in required
marketingEmails: false, // Opt-in required
dataSharing: false, // Opt-in required
activityLog: true, // Security feature, on by default
twoFactorAuth: true, // Security feature, on by default
};
3. 设计中融入隐私
隐私是系统的核心组件,而不是附加组件。
数据库架构设计:
-- Privacy-aware schema design
CREATE TABLE users (
id UUID DEFAULT gen_random_uuid() PRIMARY KEY,
-- Separate PII from operational data
email VARCHAR(255) NOT NULL, -- PII
email_hash VARCHAR(64) NOT NULL, -- For lookups without exposing email
name_encrypted BYTEA, -- Encrypted at rest
-- Operational fields (non-PII)
role VARCHAR(50) NOT NULL DEFAULT 'user',
created_at TIMESTAMP DEFAULT NOW(),
-- Privacy metadata
consent_timestamp TIMESTAMP,
consent_version VARCHAR(20),
data_retention_until TIMESTAMP,
deletion_requested_at TIMESTAMP
);
-- Separate sensitive data into its own table with stricter access
CREATE TABLE user_pii (
user_id UUID PRIMARY KEY REFERENCES users(id) ON DELETE CASCADE,
phone_encrypted BYTEA,
address_encrypted BYTEA,
date_of_birth_encrypted BYTEA,
-- Audit trail
last_accessed_at TIMESTAMP,
last_accessed_by UUID
);
4. 完整功能(正和)
隐私不应以牺牲功能为代价。设计能够同时满足这两种需求的系统。
示例:不要在个性化和隐私之间进行选择,而是使用保护隐私的个性化:
- 联邦学习:基于本地数据训练的机器学习模型,仅共享聚合结果
- 差异隐私:向分析添加噪音以防止个人身份识别
- 设备上处理:在用户设备上而不是服务器上计算的推荐
5. 端到端安全
在数据的整个生命周期中保护数据。
| 生命周期阶段 | 安全措施 |
|---|---|
| 收藏 | TLS 1.3 传输中,输入验证 |
| 加工 | 内存安全处理,不记录 PII |
| 存储 | AES-256 静态加密、密钥管理 |
| 分享 | 加密通道、与收件人的 DPA |
| 档案 | 加密存档、访问日志记录 |
| 删除 | 密码擦除、验证 |
6. 可见性和透明度
用户必须了解他们的数据会发生什么。
实施:
// Privacy dashboard API endpoint
@Controller('privacy')
export class PrivacyController {
@Get('my-data')
@ApiOperation({ summary: 'Get all personal data (GDPR Art. 15)' })
async getMyData(@Req() req: AuthenticatedRequest) {
return {
profile: await this.userService.getProfile(req.user.sub),
orders: await this.orderService.getUserOrders(req.user.sub),
supportTickets: await this.supportService.getUserTickets(req.user.sub),
loginHistory: await this.authService.getLoginHistory(req.user.sub),
consentRecords: await this.consentService.getUserConsents(req.user.sub),
dataProcessors: this.getDataProcessorList(),
};
}
@Post('export')
@ApiOperation({ summary: 'Export personal data (GDPR Art. 20)' })
async exportMyData(@Req() req: AuthenticatedRequest) {
// Generate machine-readable export (JSON)
return this.privacyService.generateDataExport(req.user.sub);
}
@Post('delete')
@ApiOperation({ summary: 'Request data deletion (GDPR Art. 17)' })
async requestDeletion(@Req() req: AuthenticatedRequest) {
return this.privacyService.initiateDataDeletion(req.user.sub);
}
}
7. 尊重用户隐私
将用户置于每个设计决策的中心。
隐私保护架构模式
模式 1:数据分离
将个人身份信息与操作数据分开:
[Frontend] --> [API Gateway] --> [Application Service]
|
+----------------+----------------+
| |
[Operational DB] [PII Vault]
(Orders, products, (Names, emails,
analytics - by ID) addresses - encrypted)
模式 2:同意驱动的处理
// Consent middleware
async function requireConsent(purpose: string) {
return async (req: Request, res: Response, next: NextFunction) => {
const consent = await consentService.check(req.user.id, purpose);
if (!consent.granted) {
throw new ForbiddenException(
`Processing for "${purpose}" requires user consent`
);
}
next();
};
}
// Usage
@Get('recommendations')
@UseGuards(requireConsent('personalization'))
async getRecommendations(@Req() req: AuthenticatedRequest) {
return this.recommendationService.getForUser(req.user.sub);
}
模式 3:数据自动过期
// TTL-based data retention
const RETENTION_POLICIES = {
supportTickets: { days: 1095, action: 'anonymize' }, // 3 years
recruitmentData: { days: 730, action: 'delete' }, // 2 years
analyticsEvents: { days: 365, action: 'aggregate' }, // 1 year
sessionLogs: { days: 90, action: 'delete' }, // 90 days
tempUploads: { days: 7, action: 'delete' }, // 7 days
};
第三方集成中的隐私
每个第三方集成都存在潜在的隐私风险。当您的应用程序将用户数据发送到外部服务时,您需要负责该服务如何处理它。
集成隐私评估
在集成任何处理用户数据的第三方服务之前:
| 评估问题 | 如果是,则采取行动 |
|---|---|
| 该服务是否接收 PII? | 需要 DPA,评估数据处理 |
| 数据会离开欧洲经济区吗? | 实施转移机制(SCC) |
| 该服务是否经过 SOC2 / ISO 27001 认证? | 验证认证是否有效 |
| 该服务可以访问明文数据吗? | 考虑客户端加密 |
| 该服务是否将数据用于其自身目的? | 确保 DPA 禁止这样做 |
常见集成隐私风险
分析:Google Analytics、Mixpanel 和类似服务接收用户行为数据。使用服务器端分析或无 cookie 的替代方案(Plausible、Fathom)来最大程度地减少数据暴露。
支付处理:Stripe、PayPal 和类似服务处理财务数据。使用其托管支付表单(Stripe Elements)来避免 PCI-DSS 范围扩展。切勿记录完整的信用卡号码。
电子邮件服务:SendGrid、Mailgun 和类似服务处理电子邮件地址和消息内容。确保电子邮件服务提供商拥有已签署的 DPA,并且不会将您的收件人数据用于广告目的。
客户支持:Zendesk、Intercom 和类似服务存储可能包含 PII 的客户对话。在支持平台中配置数据保留并确保 DPA 涵盖所有数据类型。
开发人员清单
对于每个涉及用户数据的功能
- 此功能收集哪些个人数据? (记录下来)
- 征收的法律依据是什么? (同意、合同、合法权益)
- 这是所需的最少数据吗? (数据最小化)
- 我们会保留它多久? (保留政策)
- 谁有权访问? (最小权限)
- 静态和传输过程中是否加密? (安全)
- 用户可以访问、导出和删除其数据吗? (权利)
- 是否出于审计目的而记录? (问责制)
- 是否跨越国界? (转移机制)
- 如果风险较高,是否已完成 DPIA? (评估)
常见问题
隐私设计仅适用于 GDPR?
不会。虽然 GDPR 使其成为一项法律要求(第 25 条),但通过设计保护隐私是全球公认的最佳实践。加利福尼亚州的 CPRA、巴西的 LPD 和印度的 DPDP 都包含将隐私嵌入系统设计的类似要求。实施隐私设计以实现 GDPR 合规性会自动满足大多数其他司法管辖区的要求。
我们如何将隐私改进到现有应用程序中?
优先考虑:(1) 审核您拥有的个人数据及其所在位置,(2) 实施数据主体请求工作流程(访问、删除、导出),(3) 为静态敏感数据添加加密,(4) 实施保留策略和自动删除,(5) 在缺失的地方添加同意管理。这并不理想,但首先解决了最高风险的差距。
隐私设计是否意味着我们不能使用分析?
不。这意味着负责任地使用分析。汇总数据而不是单独跟踪。使用无 cookie 的分析(Plausible、Fathom)来获取网站指标。对于产品分析,收集没有 PII 的事件或假名标识符。对于 A/B 测试,请使用服务器端分配,而不使用客户端跟踪 cookie。隐私和分析与深思熟虑的设计兼容。
我们如何在 Odoo 中实施隐私设计?
Odoo 提供了多种内置隐私功能:用户访问组(每个模块访问控制)、审核日志记录(记录上的聊天记录)和数据归档。通过以下方式增强这些功能:敏感数据的加密自定义字段、使用计划操作的自动保留规则、使用自定义报告的 GDPR 数据导出功能以及对联系人记录的同意跟踪。 ECOSIRE 的 Odoo 定制服务 包括隐私设计实施。
接下来会发生什么
设计隐私是一门工程学科。将其与用于生命周期管理的数据保留策略、用于网络属性的cookie同意实施以及用于内部系统的员工数据隐私配对。
联系 ECOSIRE 获取设计隐私咨询和软件架构审查。
由 ECOSIRE 发布——帮助企业将隐私融入到每一行代码中。
作者
ECOSIRE TeamTechnical Writing
The ECOSIRE technical writing team covers Odoo ERP, Shopify eCommerce, AI agents, Power BI analytics, GoHighLevel automation, and enterprise software best practices. Our guides help businesses make informed technology decisions.
相关文章
更多来自Compliance & Regulation
电子商务网络安全:2026 年保护您的业务
2026 年完整电子商务网络安全指南。PCI DSS 4.0、WAF 设置、机器人防护、支付欺诈预防、安全标头和事件响应。
化工行业 ERP:安全、合规性和批量处理
ERP 系统如何管理化学品公司的 SDS 文件、REACH 和 GHS 合规性、批量处理、质量控制、危险品运输和配方管理。
适用于进出口贸易的 ERP:多货币、物流与合规性
ERP 系统如何为贸易公司处理信用证、海关文件、国际贸易术语解释通则、多币种损益表、集装箱跟踪和关税计算。
使用 ERP 进行可持续发展和 ESG 报告:2026 年合规指南
通过 ERP 系统在 2026 年实现 ESG 报告合规性。涵盖 CSRD、GRI、SASB、范围 1/2/3 排放、碳追踪和 Odoo 可持续性。
审核准备清单:准备好您的书籍
完整的审计准备清单,涵盖财务报表准备情况、支持文件、内部控制文件、审计员 PBC 清单和常见审计结果。
澳大利亚电子商务企业商品及服务税指南
完整的澳大利亚电子商务企业 GST 指南,涵盖 ATO 注册、75,000 美元门槛、低值进口、BAS 申报和数字服务 GST。