使用PHP 5.3.x进行安全删除

有人知道一个好的PHP解决scheme删除或更好地从Linux系统擦除文件?

场景:文件被encryption并保存,当请求下载文件被复制到临时文件夹并被解密时。 这已经在工作了。

但是如何在发送给用户之后从临时位置删除文件呢?

在我看来,我有以下select:

  • 通过“fopen”打开文件,并写入0,1(认为很慢)
  • 将文件保存到Memcache而不是硬盘(可能是我的主机的问题)
  • 在命令行或cronjob上使用somd 3rd pary工具(可能是安装问题)

目标:从硬盘上删除文件,无法恢复(擦除/覆盖)

Solutions Collecting From Web of "使用PHP 5.3.x进行安全删除"

通过exec / system / passthru调用“ shred ”

可以说最好的是永远不要将文件保存在解密状态中。

而是使用流过滤器对其进行即时解密,并直接将其发送给最终用户。

更新

如果你考虑这个代码,你的选项1其实并不算太坏:

$filename = 'path/to/file'; $size = filesize($filename); $src = fopen('/dev/zero', 'rb'); $dest = fopen('/path/to/file', 'wb'); stream_copy_to_stream($src, $dest, $size); fclose($src); fclose($dest); 

你也可以选择/dev/urandom ,但是这样会很慢。