C# 有可能修改内存中的内容吗?

C# 有可能修改内存中的内容吗?,c#,c++,security,memory-management,C#,C++,Security,Memory Management,假设我有一个列表: List myStrings=new List() 然后我打开一个URL,将每一行放入myStrings 我的问题是“黑客”可以修改我添加到列表中的字符串吗?(例如在内存中? 如果是,我如何防止这种情况发生? 谢谢您的帮助。是的,当然,可以访问您的进程内存的黑客可以以他们喜欢的任何方式读取和修改您的数据结构 至于如何“防御”:在标准内存模型中没有机会 这里只有两种选择,要么让黑客远离您的进程(如果黑客拥有您正在运行的系统,这是不可能的!),要么尝试在特定于处理器的安全飞

假设我有一个列表:
List myStrings=new List()

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


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


谢谢您的帮助。

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

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

这里只有两种选择,要么让黑客远离您的进程(如果黑客拥有您正在运行的系统,这是不可能的!),要么尝试在特定于处理器的安全飞地中执行,尽管这并不容易实现


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

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

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

这里只有两种选择,要么让黑客远离您的进程(如果黑客拥有您正在运行的系统,这是不可能的!),要么尝试在特定于处理器的安全飞地中执行,尽管这并不容易实现


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

您想保护什么?如果你想保护某些银行信息的安全,有一件事是必须的,如果你想防止“黑客”修改游戏角色的HP,还有一件事是必须的。防止黑客攻击的两种方法是:1)不要让计算机连接到任何网络,2)关闭计算机。那不是开玩笑。你想保护什么?如果你想保护某些银行信息的安全,有一件事是必须的,如果你想防止“黑客”修改游戏角色的HP,还有一件事是必须的。防止黑客攻击的两种方法是:1)不要让计算机连接到任何网络,2)关闭计算机。那些不是开玩笑的。