繁体   English   中英

擦除python中变量使用的ram空间,防止内存转储攻击

[英]Erase ram space used by variable in python, prevent memory dump attack

在 python 中寻找针对此问题的经过验证的解决方案。

我有这样的代码:

verySensitveData = "secret, big secret"
#useing verySensitveData in code
#not need it any more
del verySensitveData # now variable is unusable in later code 
collected = gc.collect() #collected and removed

现在当 gc 被调用时它应该从 RAM 中消失。

这是否会强制操作系统通过 GC 自动擦除 verySensitveData 变量使用的地址上的数据?

它应该永远消失,没有 ram 内存转储可以检索变量 verySensitveData 中的数据?

不。 gc.collect()只会让 Python 检查被引用但无法访问的对象(例如,两个对象相互引用,但没有其他任何事情)。 它不会触发任何类型的内存清理。

如果让您的程序抵抗内存转储很重要,那么 Python 不是编写它的正确语言。 Python 很少保证数据将如何存储在内存中,并且很可能您处理的任何字符串都将被复制在处理它的过程中,它可能会在内存中留下部分或完整的字符串副本。 Python 可能会重用该内存或稍后将其释放给操作系统,但它不会采取任何特殊措施来擦除它。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM