【发布时间】:2018-08-31 02:14:22
【问题描述】:
我从我们的客户那里得到这个问题,他们说如果我们进行复制粘贴或将数据存储在变量中,那么数据就有可能被黑客入侵,黑客可以从 RAM 中获取数据并在之前使用它GC 处理它。
我们一般不会将字符串对象丢弃在堆内存中,当它刷新内存时会被 GC 收集。
这就是我对 GC 的理解
托管堆上分配的对象使用的内存超过了可接受的阈值。这个阈值是连续的 随着过程的运行进行调整。 GC.Collect 方法被调用。在 几乎所有情况下,您都不必调用此方法,因为 垃圾收集器连续运行
是否有可能任何黑客可以在 GC 刷新之前进入 RAM 并从中读取数据?如果是,那我们该如何克服呢。
【问题讨论】:
-
您应该首先防止“黑客”进入您的计算机。如果您将密码存储在变量中,请查看SecureString。
-
我不知道这是否是重复的,但它对 OP 绝对有用:stackoverflow.com/questions/26190938/…
-
如果黑客可以直接访问 RAM,那么你就完蛋了。与未加密的内存相比,黑客更有可能从社交操纵中获取数据。这些“专家”客户有何建议?此外,字符串不是一次性的,因此您不能丢弃它们,
-
目前完全同意其他cmets。如果攻击者控制了主机,那么该攻击者就可以控制在主机上运行的所有内容。
-
如果你(作为攻击者)可以读取任意内存,那么它游戏结束。您需要防止这种情况发生。 gc 在这方面是无关紧要的。
标签: c# .net memory-management garbage-collection