Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
c#从内存中清除数据表_C#_.net_Security - Fatal编程技术网

c#从内存中清除数据表

c#从内存中清除数据表,c#,.net,security,C#,.net,Security,关于不再使用时如何安全地从内存中清除敏感数据,我有一个一般性问题 我进行了一个SQL查询,结果得到了一个DataTable dt 当我离开表单时,我调用dt.Dispose()甚至gc.Collect()可以肯定 但如果在此之后对进程进行内存转储,则可以轻松获取该表的所有数据。即使我已经离开了应该访问它们的上下文 这可能是一个安全问题,我想知道在c#/.net中通常是如何处理的?也适用于其他对象 提前感谢您提供的指导如果这对您来说是真正的安全问题,那么托管代码可能是该作业的错误工具。您应该设置d

关于不再使用时如何安全地从内存中清除敏感数据,我有一个一般性问题

我进行了一个SQL查询,结果得到了一个DataTable dt

当我离开表单时,我调用
dt.Dispose()
甚至
gc.Collect()可以肯定

但如果在此之后对进程进行内存转储,则可以轻松获取该表的所有数据。即使我已经离开了应该访问它们的上下文

这可能是一个安全问题,我想知道在c#/.net中通常是如何处理的?也适用于其他对象


提前感谢您提供的指导

如果这对您来说是真正的安全问题,那么托管代码可能是该作业的错误工具。您应该设置
dt=null而不是从调试切换到发布mode@fubo-将变量设置为null的唯一相关时间是,如果它是预期寿命比该变量当前指向的对象更长的对象的字段/属性。通过OPs声明“我已经离开了应该访问它们的上下文”,我怀疑这是一种情况。@Damien_不信者OP说他不在上下文中,但你不知道代码。这一部分他也可能被忽视。我的经验是,调试模式会使数据保留的时间过长。我想知道,当进程运行并转储内存时,不需要的用户可以在什么环境下访问机器?