我不太确定 PCI 合规性,但我相信它可以概括为“不要让信用卡数据到达您的服务器”。因此,任何发布请求基本上都意味着数据至少最终会存储在服务器 RAM 中。
但是 Websocket 又如何呢? .NET Core Blazor(至少当前版本)正在使用 websockets 来更新并保持与服务器的连接打开。如果我有一个带有信用卡输入的表单,即使用第三方 JS 库发送和操作信用卡数据(对其进行标记等),它是否有机会到达服务器?
我实际上不知道 Blazor 后台发生了什么,例如,不确定到底发送了哪些数据,那么 Blazor 是否会因为以下原因导致应用程序不符合 PCI 合规性这个?
我认为我的问题可以措辞更好,让我重新表述一下:
我的主要问题是更多地沿着 CAN 路线,我们实现了服务器端 blazor 的 PCI 合规性,而无需处理服务器的 PCI 合规性。有什么方法可以告诉 blazor 不要通过 websocket 发送敏感数据吗?据我所知,所有客户端-服务器通信都是在后台发生的,有什么方法可以控制它吗?或者使用服务器端意味着我必须确保我的服务器符合 PCI 标准。
最佳答案
PCI 合规性是您必须做的一整套事情。信用卡数据当然可以使用并发送到您的服务器。将其远离服务器的想法之一是降低您的合规性,即您接触信用卡数据的次数越少,您必须采取的 PCI 合规性步骤就越少。如果您要使用诸如托管支付平台之类的平台,其中用户实际上被重定向到另一个第三方来收集和处理信用卡信息,那么您将不符合 PCI 合规性,因为您永远不会接触或看到信用卡数据。
但是,如果您将其发送到客户端,但从不将其发送到服务器端,这并不意味着您不必担心 PCI 合规性。您的 PCI 合规负担减轻,但并非不存在。此外,将其发送到服务器端的方法并不重要。 Websocket 仍然有效。因此,如果您想完全使其远离服务器,则必须使用客户端 Blazor 托管模型,即 WebAssembly。即便如此,您也必须小心,不要将其发送到您控制的任何地方。换句话说,您构建的 API 仍然是服务器端的。您只能将其直接发送到您的支付处理器(Stripe、Authorize.Net 等)。
关于asp.net-core - .NET Core Blazor PCI 合规性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61478883/