擦除python中变量使用的ram空间,防止内存转储攻击
正在用python寻找此问题的经验证的解决方案 我有这样的代码:擦除python中变量使用的ram空间,防止内存转储攻击,python,memory,ram,dump,Python,Memory,Ram,Dump,正在用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
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可能会重用该内存或稍后将其释放到操作系统,但不会采取任何特殊措施来擦除它。此外,在使用字符串文本的特定情况下,该文本位于Python的内部字符串缓存中,因此理论上甚至不会释放它。