gpt4 book ai didi

c# - 类中私有(private)字段值中的数据有多安全,如何使其更安全?

转载 作者:行者123 更新时间:2023-11-30 18:52:00 24 4
gpt4 key购买 nike

我有一个类在其私有(private)字段中预加载一些值,这些字段用于进一步的计算。

从那时起感兴趣的是,这些数据有多安全——黑客通过内存筛选访问这些数据的难易程度等等。完美这里的场景是只有它的名为Class.CalculateSomething() 的公共(public)方法能够访问这些字段并返回结果。

知道这可能是不可能的,有没有什么方法可以提高这些字段(主要是数字和字符串)的安全性?

最佳答案

您没有包括关于攻击者的最重要的事实:谁是攻击者?分析在很大程度上取决于这个问题的答案。

如果攻击者是用户 那么你就完了。如果攻击者拥有这台机器,您将无能为力。 他们拥有机器。您甚至不知道他们是否正在运行 Windows 或不是为了上帝的缘故。他们本可以编写自己的操作系统和 CLR。即使 CLR 中有安全系统,您也不能依赖它,因为攻击者可能会从自定义环境中攻击您的代码。 代码不可能对坚定的用户保密。

在这种情况下,您所能做的就是 (1) 降低攻击者获取 secret 的 yield ,以及 (2) 提高成本。一旦攻击的成本超过攻击成功的 yield ,理性的攻击者就会放弃。

不过在这种情况下最好什么都不做。 如果您不信任用户,请不要在用户机器上放置 secret 。将 secret 保存在您拥有的机器上。

如果攻击者正在编写恶意代码,然后诱使用户运行该代码,那么您就有机会了。如果用户完全信任恶意代码,那么恶意代码就是完全可信的,我们的情况和以前一样;恶意代码是完全可信的,因此与用户一样强大;这就是“完全信任”的意思。

如果恶意代码是部分可信的,那么为了允许它通过反射读取私有(private)成员,它必须被授予跳过可见性检查权限。

或者,它可以被授予受限的跳过可见性检查;被授予 RSV 的程序集可以查看被授予同等或更少权利的任何程序集的私有(private)数据。

关于c# - 类中私有(private)字段值中的数据有多安全,如何使其更安全?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5473008/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com