asp.net-core - .NET Core Blazor PCI 合规性

标签 asp.net-core blazor pci-compliance

我不太确定 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/

相关文章:

asp.net-core - ASP.NET Identity 和 IdentityServer 有什么区别?

c# - 使用独立的 Blazor WASM、AAD、.NET Core 6 Web API 调用 MS Graph 时,On-Behalf-Of 流程出现问题

c# - Azure 函数遇到 System.Net.Sockets.SocketException

c# - 从选项卡注销,不适用于所有其他选项卡

c# - 将服务器端 Blazor 添加到现有 MVC 核心应用

pci-compliance - W2012 如何关闭 TLS_RSA_WITH_3DES_EDE_CBC_SHA

安全指标

c# - 用于 PCI 合规性的敏感数据的自定义 JSON 序列化

c# - 使用 IdentityServer4 从单个客户端接受 Bearer 身份验证和 OpenIdConnect 时出现奇怪的行为

asp.net-mvc - 如何使用Visual Studio代码在ASP.NET Core中添加ASP.NET身份