c#从内存中清除数据表
关于不再使用时如何安全地从内存中清除敏感数据,我有一个一般性问题 我进行了一个SQL查询,结果得到了一个DataTable dt 当我离开表单时,我调用c#从内存中清除数据表,c#,.net,security,C#,.net,Security,关于不再使用时如何安全地从内存中清除敏感数据,我有一个一般性问题 我进行了一个SQL查询,结果得到了一个DataTable dt 当我离开表单时,我调用dt.Dispose()甚至gc.Collect()可以肯定 但如果在此之后对进程进行内存转储,则可以轻松获取该表的所有数据。即使我已经离开了应该访问它们的上下文 这可能是一个安全问题,我想知道在c#/.net中通常是如何处理的?也适用于其他对象 提前感谢您提供的指导如果这对您来说是真正的安全问题,那么托管代码可能是该作业的错误工具。您应该设置d
dt.Dispose()
甚至gc.Collect()代码>可以肯定
但如果在此之后对进程进行内存转储,则可以轻松获取该表的所有数据。即使我已经离开了应该访问它们的上下文
这可能是一个安全问题,我想知道在c#/.net中通常是如何处理的?也适用于其他对象
提前感谢您提供的指导如果这对您来说是真正的安全问题,那么托管代码可能是该作业的错误工具。您应该设置dt=null代码>而不是从调试切换到发布mode@fubo-将变量设置为null的唯一相关时间是,如果它是预期寿命比该变量当前指向的对象更长的对象的字段/属性。通过OPs声明“我已经离开了应该访问它们的上下文”,我怀疑这是一种情况。@Damien_不信者OP说他不在上下文中,但你不知道代码。这一部分他也可能被忽视。我的经验是,调试模式会使数据保留的时间过长。我想知道,当进程运行并转储内存时,不需要的用户可以在什么环境下访问机器?