Security 阵列是否可以存在于物理内存中的多个位置?

Security 阵列是否可以存在于物理内存中的多个位置?,security,compilation,compiler-optimization,ram,virtual-memory,Security,Compilation,Compiler Optimization,Ram,Virtual Memory,假设我有一个数组,其中存储了一些敏感数据。覆盖数组的每个元素可确保从物理内存中的当前位置擦除数据 然而,在物理内存中的其他地方是否会有过时的数据副本?或者虚拟到物理内存的映射在阵列的生存期内是固定的吗 我特别想了解C、Java和WebAssembly中的行为。在所有语言中,数组都是从其他内存位置填充的,因此您需要确保其他内存位置也被覆盖 在Java和WebAssembly等垃圾收集语言中,垃圾收集器的实现很可能会移动对象(如数组),而不会覆盖以前的内存位置 您还应该注意,如果数据来自进程外部(例

假设我有一个数组,其中存储了一些敏感数据。覆盖数组的每个元素可确保从物理内存中的当前位置擦除数据

然而,在物理内存中的其他地方是否会有过时的数据副本?或者虚拟到物理内存的映射在阵列的生存期内是固定的吗


我特别想了解C、Java和WebAssembly中的行为。

在所有语言中,数组都是从其他内存位置填充的,因此您需要确保其他内存位置也被覆盖

在Java和WebAssembly等垃圾收集语言中,垃圾收集器的实现很可能会移动对象(如数组),而不会覆盖以前的内存位置

您还应该注意,如果数据来自进程外部(例如网络),并且在进入进程之前被解密(或者根本没有加密),那么它也可能存在于操作系统缓冲区中

在大多数情况下,更好的做法是,如果进程处理敏感信息,则不允许它与不受信任的一方共享内存,而不是追查可能的敏感数据泄漏