集成安全指南
确保客户端和服务器之间的通讯符合 PCI 规定且安全。
PCI DSS 是存储、处理或传输持卡人或敏感身份验证数据的所有实体的全球安全标准。PCI DSS 为消费者设定了基准保护级别,并有助于减少整个支付生态系统中的欺诈和数据泄露。涉及银行卡数据处理、传输或存储的任何人都必须遵守支付卡行业数据安全标准 (PCI DSS) (PCI DSS)。
验证您的 PCI 合规性
PCI 合规是一项共同责任,Stripe 及贵商家都要为之负责:
- Stripe 每年由独立 PCI 合格安全评估机构 (QSA) 认定为满足所有 PCI 要求的 PCI 1 级服务提供商。
- 作为接受付款的商家,您必须以符合 PCI 标准的方式进行付款,并每年证明其合规性。
在管理平台中查看贵商家的文档要求,并继续阅读本指南,了解 Stripe 如何帮助您实现 PCI 合规。
使用低风险集成应用
某些业务模式要求在支付页面上引入未令牌化的 PAN。如果贵商家在接受付款时直接处理敏感的信用卡数据,那么您可能需要满足 PCI DSS 中的 300+ 项安全控制措施。这可能需要您购买、实施和维护专用的安全软件和硬件,并聘请外部审计师来支持您的年度评估要求。
许多业务模式不需要处理敏感的银行卡数据。相反,您可以使用我们的低风险支付集成之一来安全地收集支付信息并将其直接传输给 Stripe,无需通过您的服务器,从而减少您的 PCI 义务。
您可以安全存储的银行卡数据
Stripe 在对收款请求的响应中返回非敏感的银行卡信息。包括卡的类型、卡的后四位数字和有效期。此信息不受 PCI 合规性的约束,因此可将这些属性中的任何一个存储在数据库中。此外,您可以存储我们的 API 返回的任何内容。
使用 TLS 和 HTTPS
TLS 是指在客户端(您的客户使用的应用程序或浏览器)与您的服务器之间安全传输数据的过程。安全套接层 (SSL) 协议最初执行此功能,但已经过时且不再安全。TLS 已经代替了 SSL,但在提及 TLS 及其保护传输数据的功能时,仍通俗地使用术语 SSL。
支付页面必须使用近期版本(TLS 1.2 或以上),因为它可以显著降低您和您的客户遭受中间人攻击的风险。TLS 会尝试完成以下工作:
- 加密并验证客户端和服务器之间流量的完整性。
- 验证客户端能够与正确的服务器通讯。实际上,这通常就等于是验证了域名的所有者和服务器的所有者是同一个实体。这有助于防止中间人攻击 (Man-in-the-Middle Attack)。否则,就不能保证您将流量加密到正确的接收者。
使用 TLS 需要_数字证书_——由认证中心 (CA) 发行的文件。安装该证书可向客户端保证,它实际上在与它期望与之对话的服务器通信,而非冒名顶替者。从信誉良好的证书提供商处获取数字证书,例如:
如果需要,您可以在不使用 HTTPS 的情况下测试您的集成,然后在准备好接受真实收款时再启用它。但是,您的服务器和 Stripe 之间的所有交互(即在使用我们的库时)都必须使用 HTTPS。
设置 TLS
如何设置 TLS:
- 从合适的提供商处购买证书。
- 将服务器配置为使用证书。该步骤很复杂,因此请遵循所用提供商的安装指南。
由于 TLS 是一套复杂的加密工具,因此很容易遗漏一些细节。建议您使用 Qualys SSL Labs 的 SSL Server Test,确保您以安全的方式设置所有内容。
安全考虑
包含来自其他网站的 JavaScript 会使您的安全性依赖于他们的安全性,并带来安全风险。如果它们的安全性遭到威胁,攻击者可能会在您的页面执行任意的代码。实际上,许多网站甚至在安全页面上使用 JavaScript 来提供 Google Analytics 等服务。尽管如此,我们建议尽量减少它。
如果您在使用 Webhook,则对端点使用 TLS,避免流量被拦截和通知被更改(Webhook 事件中永远不会包含敏感信息)。
虽然遵守《数据安全标准》很重要,但这不应该就此停止考虑安全性问题。以下这些资源可帮助您了解网络安全:
内容安全政策
如果您已经部署了内容安全政策,则 Checkout、Connect 嵌入式组件和 Stripe.js 要求的全套指令为:
跨源隔离支持
目前,我们不支持跨源隔离站点。
跨源隔离需要所有依赖项的支持,而支持我们的支付产品的几个关键依赖项尚未提供对此功能的支持。