簡體   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