如何擦除非活动进程内存?

时间:2015-02-01 00:33:25

标签: php linux memory memory-management apache2

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

当请求到Apache时,我会对已存在于服务器内存中的机密数据执行某些操作。这些数据已经被覆盖并自动擦除。

另一方面,这就是重点,因为这样的机密数据是在PHP脚本下操作的,并且肯定被复制到相关的内存空间中,我关心的是确保在HTTP响应结束后(和关联的PHP / Apache2进程终止?),绝对没有引用内存中持久保存的机密数据的值。

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

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

2)如果没有PHP进程但只有Apache2进程被调用,并且Apache2进程不一定终止,是否有任何命令或库来清除活动进程的“非活动内存”?

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

谢谢

1 个答案:

答案 0 :(得分:0)

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

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