如何擦除非活动进程内存


How to wipe inactive process memory?

我在 Debian 上的 Apache2 下将 PHP 作为模块运行。

当请求到达 Apache 时,我会对服务器内存中已有的机密数据执行一些操作。此类数据已被覆盖并自动擦除。

另一方面,这就是

重点,因为此类机密数据是在PHP脚本下操作的,并且肯定会复制到相关的内存空间中,我担心的是,在HTTP响应结束后(以及相关的PHP/Apache2进程终止?),绝对没有对内存中保留的机密数据的引用或值。

可能,一种有效的方法是经常清理/覆盖(作为 cronjob 或在 PHP 脚本结束后)整个非活动内存空间。问题:

1)是否有Unix命令或低级库来清理/覆盖所有非活动内存空间?

2)如果没有PHP进程,而只涉及Apache2进程,并且由于Apache2进程不一定终止,是否有任何命令或库来清理活动进程的"非活动内存"?

3)PHP中是否有有效的解决方案来清理/覆盖脚本关闭前使用的内存?

谢谢

我认为安全网站上的这个答案与内存存储有些关系:https://security.stackexchange.com/questions/29019/are-passwords-stored-in-memory-safe

在我看来,不值得付出努力。 如果用户有权访问脚本正在使用的内存,则用户可能有权访问脚本本身,因此可以插入他们想要的任何代码来规避您实施的任何措施。 这也比抓取数据内存要容易得多。 尽可能锁定操作系统,假设您管理操作系统。