【问题标题】:.NET Core Blazor PCI compliance.NET Core Blazor PCI 合规性
【发布时间】:2020-08-12 04:31:51
【问题描述】:

我不太确定 PCI 合规性,但我认为可以总结为“不要让信用卡数据影响您的服务器”。因此,任何发布请求基本上都意味着数据至少在服务器 RAM 中结束。

但是 Websockets 呢? .NET Core Blazor,至少是当前版本,正在使用 websockets 来更新并保持与服务器的连接打开。如果我有一个带有信用卡输入的表单,即使用第三方 JS 库来发送和操作信用卡数据(对其进行标记等),它是否有机会访问服务器?

我实际上不知道 Blazor 在后台发生了什么,例如,不确定到底发送了哪些数据,所以 Blazor 可能会导致应用程序不符合 PCI 合规性,因为这个?

我认为我的问题可以措辞更好,这里让我重新表述一下:

我的主要问题更多地是沿着 CAN 线,我们实现了服务器端 blazor 的 PCI 合规性,而无需处理服务器的 PCI 合规性。有什么方法可以告诉 blazor 不要通过 websockets 发送敏感数据?因为据我所知,所有客户端-服务器通信都是在后台进行的,有什么方法可以控制它?或者使用服务器端意味着我必须确保我的服务器符合 PCI 标准。

【问题讨论】:

  • ".. 有机会攻击服务器吗?" - 通常:是的。您可能可以将其全部保存在 HTML/JS 控件中,但这不是 Blazor。 am <InputText> 中的所有内容都存在于服务器上。
  • 是的,但是如果我不使用 blazor 表单组件,是否足以确保信用卡数据永远不会在服务器上结束?请注意,我不知道 gwts 在客户端和服务器之间发送什么数据,所以用 js 打一个输入字段就足以说“只有客户端的数据,不用担心服务器的 PCI 合规性”

标签: asp.net-core blazor pci-compliance


【解决方案1】:

PCI 合规性是您必须做的一整套事情。当然可以使用信用卡数据并将其发送到您的服务器。将其保留在服务器之外的想法是降低您的合规性之一,即您接触信用卡数据的次数越少,您必须采取的 PCI 合规性步骤就越少。如果您要使用托管支付平台之类的东西,其中用户实际上被重定向到另一个第三方以收集和处理信用卡信息,那么您将没有 PCI 合规性,因为您从未接触或看到信用卡数据。

但是,如果您将其发送到客户端,但从不发送到服务器端,这并不意味着您不必担心 PCI 合规性。您的 PCI 合规负担较少,但并非没有。此外,在服务器端发送它的方法并不重要。 Websockets 仍然很重要。因此,如果您想完全不使用服务器,则必须使用客户端 Blazor 托管模型,即 Webassembly。即使那样,你也必须小心不要将它发送给你控制的任何东西。换句话说,您构建的 API 仍然是服务器端。您只能将其直接发送到您的支付处理器(Stripe、Authorize.Net 等)。

【讨论】:

  • 您好,感谢您的详细解释。我本可以更好地措辞这个问题。我知道如何实现 PCI 合规性,只要我不必担心服务器端的事情,那就是“只要数据不会影响服务器”。我的主要问题更多地是沿着 CAN 线我们实现与服务器端 blazor 的 PCI 合规性,而无需处理服务器端的 PCI 合规性。有什么方法可以告诉 blazor 不要通过 websockets 发送敏感数据?
  • 不适用于服务器端托管模型。 一切都发生在服务器端。 websocket comm 是基于客户端发生的事情来维护服务器端状态。如果你对服务器“隐藏”某些东西,它实际上永远不会发生。
猜你喜欢
  • 2017-05-26
  • 2011-05-12
  • 2013-10-02
  • 2019-04-21
  • 2013-10-13
  • 2019-09-15
  • 1970-01-01
  • 2019-07-13
  • 2016-05-18
相关资源
最近更新 更多