PCI DSS
Vibe Prompt
「幫我檢查應用是否符合 PCI DSS 要求:信用卡資料不能儲存、傳輸需加密、存取需控制。」
PCI DSS 12 項要求
| 目標 | 要求 | |------|------| | 建立安全網路 | 1. 防火牆設定 2. 不採用預設密碼 | | 保護持卡人資料 | 3. 保護儲存資料 4. 加密傳輸 | | 管理漏洞 | 5. 使用防毒軟體 6. 安全更新 | | 嚴格存取控制 | 7. 最小權限 8. 唯一 ID 9. 實體安全 | | 監控網路 | 10. 追蹤存取 11. 定期測試 | | 維護政策 | 12. 資安政策 |
儲存信用卡資料
❌ 錯誤:儲存完整卡號與 CVV
信用卡號: 4111-1111-1111-1111
CVV: 123
✅ 正確:使用 Token 代替
Token: tok_visa_abc123def456
原始卡號: (只存在 Stripe 伺服器)
Stripe 整合(PCI 合規)
// ✅ Stripe 幫你處理 PCI 合規
const stripe = require('stripe')(process.env.STRIPE_SECRET_KEY);
// 建立 PaymentIntent
const paymentIntent = await stripe.paymentIntents.create({
amount: 999,
currency: 'twd',
payment_method: 'pm_card_visa',
confirmation_method: 'manual',
});
// 你的伺服器從不接觸信用卡號!
傳輸加密要求
# TLS 1.2+,禁用 TLS 1.0/1.1
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256;
ssl_prefer_server_ciphers on;
ssl_session_cache shared:SSL:10m;
定期掃描
- 每季進行 ASV(Approved Scanning Vendor)掃描
- 每年進行滲透測試
- 程式碼變更後進行安全審查
合規等級
| 等級 | 交易量(每年) | 要求 | |------|--------------|------| | 第4級 | < 2 萬筆 | SAQ + 季度掃描 | | 第3級 | 2-100 萬筆 | SAQ + 季度掃描 + 滲透測試 | | 第2級 | 100-600 萬筆 | ROC + QSA 稽核 | | 第1級 | > 600 萬筆 | ROC + QSA 稽核 + ASV 掃描 |