文章目录
- 法规 地区 生效时间 罚款上限 GDPR 欧盟 2018年 2000万欧/4%营业额 CCPA/CPRA 加州 2020年 $7500/次 PDPA 泰国 2022年 500万泰铢 LGPD 巴西 2020年 2%营业额 PIPL 中国 2021年 5000万/100万条款 个人信息保护法 中国 2021年 5000万
-
- // Cookie Consent Manager class CookieConsent { constructor() { this.consentKey = 'gdpr_consent'; } // 显示同意横幅 showBanner() { const html = ` <div class="cookie-banner"> <p>我们使用Cookie改善您的体验。<a href="/privacy">了解更多</a></p> <div class="consent-buttons"> <button onclick="cookieConsent.acceptAll()">全部接受</button> <button onclick="cookieConsent.rejectAll()">全部拒绝</button> <button onclick="cookieConsent.showSettings()">设置</button> </div> </div> `; document.body.insertAdjacentHTML('beforeend', html); } // 保存同意状态 saveConsent(preferences) { localStorage.setItem(this.consentKey, JSON.stringify({ timestamp: Date.now(), preferences: preferences })); } }
- // 同意后才加载脚本 const loadScriptIfConsented = (src, category) => { const consent = getCookieConsent(); if (consent[category]) { const script = document.createElement('script'); script.src = src; document.head.appendChild(script); } }; // Google Analytics延迟加载 const loadGA = () => { if (!cookieConsent.hasAnalyticsConsent()) return; window.dataLayer = window.dataLayer || []; function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'GA-ID'); };
-
- // 使用AES-256-GCM加密敏感数据 import CryptoJS from 'crypto-js'; const encryptData = (data, key) => { const encrypted = CryptoJS.AES.encrypt( JSON.stringify(data), key ); return encrypted.toString(); }; const decryptData = (ciphertext, key) => { const decrypted = CryptoJS.AES.decrypt(ciphertext, key); return JSON.parse(decrypted.toString()); };
- <?php // GDPR同意记录 function logConsent($userId, $consentType, $granted) { global $wpdb; $wpdb->insert($wpdb->prefix . 'consent_log', [ 'user_id' => $userId, 'consent_type' => $consentType, 'granted' => $granted, 'ip_address' => $_SERVER['REMOTE_ADDR'], 'user_agent' => $_SERVER['HTTP_USER_AGENT'], 'timestamp' => current_time('mysql'), 'gdpr_version' => '2026-01-01' ]); }
- // IP匿名化(GDPR合规) const anonymizeIP = (ip) => { // IPv4:最后一位设为0 if (ip.includes('.')) { return ip.replace(/\.\d+$/, '.0'); } // IPv6:最后80位设为0 if (ip.includes(':')) { return ip.replace(/:[0-9a-f]+:[0-9a-f]+:[0-9a-f]+$/i, '::'); } return ip; };
-
- 服务 数据类型 合规措施 Google Analytics 匿名访问数据 IP匿名化、同意管理 Facebook Pixel 行为数据 同意管理 Hotjar 屏幕录制 明确告知、同意 Google Fonts 字体请求 自托管或隐私政策 Cloudflare IP/请求 隐私政策
- <!-- Google Fonts → 自托管 --> @font-face { font-family: 'Open Sans'; src: url('/fonts/OpenSans-Regular.woff2') format('woff2'); } <!-- Google Analytics → 自托管分析 --> <!-- 使用Plausible/Umami替代 -->
- [ ] 隐私政策页面 [ ] Cookie同意横幅 [ ] 数据导出功能 [ ] 账户删除功能 [ ] 第三方脚本同意后加载 [ ] 数据保留策略 [ ] 同意记录日志 [ ] 定期合规审计
- graph TD A[用户投诉] --> B{核实投诉} B -->|有效| C[30天内响应] B -->|无效| D[回复说明] C --> E[采取行动] E --> F[记录处理结果] D --> F F --> G[定期审计] 隐私合规不仅是法律要求,更是建立用户信任的重要方式。
全球隐私法规日益严格,本文详解GDPR、CCPA和国内数据安全法的技术实现与合规策略。
| 法规 | 地区 | 生效时间 | 罚款上限 |
|---|---|---|---|
| GDPR | 欧盟 | 2018年 | 2000万欧/4%营业额 |
| CCPA/CPRA | 加州 | 2020年 | $7500/次 |
| PDPA | 泰国 | 2022年 | 500万泰铢 |
| LGPD | 巴西 | 2020年 | 2%营业额 |
| PIPL | 中国 | 2021年 | 5000万/100万条款 |
| 个人信息保护法 | 中国 | 2021年 | 5000万 |
| 权利 | 说明 | 技术实现 |
|---|---|---|
| 知情权 | 告知数据收集用途 | 隐私政策 |
| 访问权 | 导出个人数据 | 数据导出功能 |
| 纠正权 | 修改错误数据 | 编辑功能 |
| 删除权 | 要求删除数据 | 右到删除 |
| 限制权 | 暂停处理 | 同意管理 |
| 便携权 | 导出结构化数据 | JSON/CSV |
| 拒绝权 | 拒绝自动化决策 | 退出机制 |
| 基础 | 适用场景 |
|---|---|
| 同意 | 非必要cookies |
| 合同履行 | 电商订单处理 |
| 法律义务 | 财务记录 |
| 合法利益 | 安全、欺诈防护 |
// Cookie Consent Manager
class CookieConsent {
constructor() {
this.consentKey = 'gdpr_consent';
}
// 显示同意横幅
showBanner() {
const html = `
<div class="cookie-banner">
<p>我们使用Cookie改善您的体验。<a href="/privacy">了解更多</a></p>
<div class="consent-buttons">
<button onclick="cookieConsent.acceptAll()">全部接受</button>
<button onclick="cookieConsent.rejectAll()">全部拒绝</button>
<button onclick="cookieConsent.showSettings()">设置</button>
</div>
</div>
`;
document.body.insertAdjacentHTML('beforeend', html);
}
// 保存同意状态
saveConsent(preferences) {
localStorage.setItem(this.consentKey, JSON.stringify({
timestamp: Date.now(),
preferences: preferences
}));
}
}
// Cookie Consent Manager
class CookieConsent {
constructor() {
this.consentKey = 'gdpr_consent';
}
// 显示同意横幅
showBanner() {
const html = `
<div class="cookie-banner">
<p>我们使用Cookie改善您的体验。<a href="/privacy">了解更多</a></p>
<div class="consent-buttons">
<button onclick="cookieConsent.acceptAll()">全部接受</button>
<button onclick="cookieConsent.rejectAll()">全部拒绝</button>
<button onclick="cookieConsent.showSettings()">设置</button>
</div>
</div>
`;
document.body.insertAdjacentHTML('beforeend', html);
}
// 保存同意状态
saveConsent(preferences) {
localStorage.setItem(this.consentKey, JSON.stringify({
timestamp: Date.now(),
preferences: preferences
}));
}
}
// 同意后才加载脚本
const loadScriptIfConsented = (src, category) => {
const consent = getCookieConsent();
if (consent[category]) {
const script = document.createElement('script');
script.src = src;
document.head.appendChild(script);
}
};
// Google Analytics延迟加载
const loadGA = () => {
if (!cookieConsent.hasAnalyticsConsent()) return;
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('config', 'GA-ID');
};
// 同意后才加载脚本
const loadScriptIfConsented = (src, category) => {
const consent = getCookieConsent();
if (consent[category]) {
const script = document.createElement('script');
script.src = src;
document.head.appendChild(script);
}
};
// Google Analytics延迟加载
const loadGA = () => {
if (!cookieConsent.hasAnalyticsConsent()) return;
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('config', 'GA-ID');
};
## 1. 数据控制者
- 公司名称
- 注册地址
- 联系方式
## 2. 收集的数据
| 数据类型 | 收集目的 | 保存期限 |
|----------|----------|----------|
| IP地址 | 安全监控 | 90天 |
| 邮箱 | 账户创建 | 永久 |
| 行为数据 | 分析优化 | 2年 |
## 3. 数据共享
- 第三方服务提供商
- 法律要求披露
## 4. 用户权利
- 数据导出
- 数据删除申请
- 撤回同意
## 5. 联系信息
privacy@example.com
## 1. 数据控制者
- 公司名称
- 注册地址
- 联系方式
## 2. 收集的数据
| 数据类型 | 收集目的 | 保存期限 |
|----------|----------|----------|
| IP地址 | 安全监控 | 90天 |
| 邮箱 | 账户创建 | 永久 |
| 行为数据 | 分析优化 | 2年 |
## 3. 数据共享
- 第三方服务提供商
- 法律要求披露
## 4. 用户权利
- 数据导出
- 数据删除申请
- 撤回同意
## 5. 联系信息
privacy@example.com
// 使用AES-256-GCM加密敏感数据
import CryptoJS from 'crypto-js';
const encryptData = (data, key) => {
const encrypted = CryptoJS.AES.encrypt(
JSON.stringify(data),
key
);
return encrypted.toString();
};
const decryptData = (ciphertext, key) => {
const decrypted = CryptoJS.AES.decrypt(ciphertext, key);
return JSON.parse(decrypted.toString());
};
// 使用AES-256-GCM加密敏感数据
import CryptoJS from 'crypto-js';
const encryptData = (data, key) => {
const encrypted = CryptoJS.AES.encrypt(
JSON.stringify(data),
key
);
return encrypted.toString();
};
const decryptData = (ciphertext, key) => {
const decrypted = CryptoJS.AES.decrypt(ciphertext, key);
return JSON.parse(decrypted.toString());
};
<?php
// GDPR同意记录
function logConsent($userId, $consentType, $granted) {
global $wpdb;
$wpdb->insert($wpdb->prefix . 'consent_log', [
'user_id' => $userId,
'consent_type' => $consentType,
'granted' => $granted,
'ip_address' => $_SERVER['REMOTE_ADDR'],
'user_agent' => $_SERVER['HTTP_USER_AGENT'],
'timestamp' => current_time('mysql'),
'gdpr_version' => '2026-01-01'
]);
}
<?php
// GDPR同意记录
function logConsent($userId, $consentType, $granted) {
global $wpdb;
$wpdb->insert($wpdb->prefix . 'consent_log', [
'user_id' => $userId,
'consent_type' => $consentType,
'granted' => $granted,
'ip_address' => $_SERVER['REMOTE_ADDR'],
'user_agent' => $_SERVER['HTTP_USER_AGENT'],
'timestamp' => current_time('mysql'),
'gdpr_version' => '2026-01-01'
]);
}
// IP匿名化(GDPR合规)
const anonymizeIP = (ip) => {
// IPv4:最后一位设为0
if (ip.includes('.')) {
return ip.replace(/\.\d+$/, '.0');
}
// IPv6:最后80位设为0
if (ip.includes(':')) {
return ip.replace(/:[0-9a-f]+:[0-9a-f]+:[0-9a-f]+$/i, '::');
}
return ip;
};
// IP匿名化(GDPR合规)
const anonymizeIP = (ip) => {
// IPv4:最后一位设为0
if (ip.includes('.')) {
return ip.replace(/\.\d+$/, '.0');
}
// IPv6:最后80位设为0
if (ip.includes(':')) {
return ip.replace(/:[0-9a-f]+:[0-9a-f]+:[0-9a-f]+$/i, '::');
}
return ip;
};
| 服务 | 数据类型 | 合规措施 |
|---|---|---|
| Google Analytics | 匿名访问数据 | IP匿名化、同意管理 |
| Facebook Pixel | 行为数据 | 同意管理 |
| Hotjar | 屏幕录制 | 明确告知、同意 |
| Google Fonts | 字体请求 | 自托管或隐私政策 |
| Cloudflare | IP/请求 | 隐私政策 |
<!-- Google Fonts → 自托管 -->
@font-face {
font-family: 'Open Sans';
src: url('/fonts/OpenSans-Regular.woff2') format('woff2');
}
<!-- Google Analytics → 自托管分析 -->
<!-- 使用Plausible/Umami替代 -->
<!-- Google Fonts → 自托管 -->
@font-face {
font-family: 'Open Sans';
src: url('/fonts/OpenSans-Regular.woff2') format('woff2');
}
<!-- Google Analytics → 自托管分析 -->
<!-- 使用Plausible/Umami替代 -->
- [ ] 隐私政策页面
- [ ] Cookie同意横幅
- [ ] 数据导出功能
- [ ] 账户删除功能
- [ ] 第三方脚本同意后加载
- [ ] 数据保留策略
- [ ] 同意记录日志
- [ ] 定期合规审计
graph TD
A[用户投诉] --> B{核实投诉}
B -->|有效| C[30天内响应]
B -->|无效| D[回复说明]
C --> E[采取行动]
E --> F[记录处理结果]
D --> F
F --> G[定期审计]
graph TD
A[用户投诉] --> B{核实投诉}
B -->|有效| C[30天内响应]
B -->|无效| D[回复说明]
C --> E[采取行动]
E --> F[记录处理结果]
D --> F
F --> G[定期审计]
隐私合规不仅是法律要求,更是建立用户信任的重要方式。
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。

评论(0)