【问题标题】:Is it possible to modify things in memory? [closed]是否可以修改内存中的内容? [关闭]
【发布时间】:2020-08-23 10:28:47
【问题描述】:

假设我有一个列表:
List<string> myStrings = new List<string>();

然后我打开一个 URL 并将每一行放入 myStrings

我的问题是“黑客” 可以修改我添加到列表中的字符串吗? (例如在内存中?)
如果是,我该如何防止这种情况发生?

感谢您的帮助。

【问题讨论】:

  • 您要防范什么?如果您想保护一些银行信息的安全,这是一回事,如果您想防止“黑客”修改您游戏角色的 HP,还有另一件事。
  • 防范黑客的两种方法是:1) 不将您的计算机连接到任何网络,以及 2) 关闭计算机。这些可不是开玩笑的。

标签: c# c++ security memory-management


【解决方案1】:

是的,当然可以访问您的进程内存的黑客可以以他们喜欢的任何方式读取和修改您的数据结构。

关于如何“防御”:在标准内存模型中没有机会。

这里只有两个选项,要么让黑客远离你的进程(如果黑客拥有你正在运行的系统,那就没有机会了!),或者尝试在处理器特定的安全飞地之一内执行,这不是'不过实现起来并不容易。

一般来说,如果您的代码(部分)在客户的系统上运行,您绝不能信任该代码。您必须通过设计确保任何敏感数据都不会出现在客户的系统上,并且您必须始终假设反馈到您的基础架构的输入已被恶意篡改。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-03-04
    • 2022-01-07
    • 1970-01-01
    • 2017-10-12
    • 2014-03-28
    • 2023-01-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多