php - 从服务器上完全删除一个文件

标签 php

我想使用 PHP 删除一个文件。我使用了unlink() 函数,但我想知道unlink 的安全性。该文件是否已从服务器中完全删除?我想确保没有办法取回文件,并且文件已从服务器中完全删除。

最佳答案

以二进制模式打开文件进行写入,在整个文件上写入 1,关闭文件,然后取消链接。覆盖文件中的任何数据,因此无法恢复。

我个人会说使​​用 1 而不是 0,因为 1 是实际数据并且总是会写入,而 0 可能不会写入,这取决于几个因素。

编辑:经过一番思考和阅读评论后,我会采用混合方法,具体取决于您希望文件的“删除方式”,如果您只是希望这样做数据无法恢复,用 1 覆盖整个文件长度,因为这很快,并破坏数据,问题在于它在磁盘上留下了一组统一数据长度,从而推断出文件 USED 在那里并给出远离文件长度,提供重要的取证信息。简单地写入随机数据也不会避免这种情况,好像这个文件周围的所有驱动器扇区都没有被触及,这也会留下取证痕迹。

考虑到取证删除、混淆和似是而非的否认的最佳解决方案(同样,这是矫枉过正,但我​​添加它是为了添加它),用 1 覆盖文件的整个长度然后,对于文件长度的一半,以字节为单位,从 mt_rand 以随机长度大小写入,从随机起点开始,给人的印象是许多不同长度的文件曾经在这个区域,因此创造虚假的踪迹。 (同样,这完全是矫枉过正,通常只有连环 killer 和中央情报局才需要,但我添加它是为了这样做)。

关于php - 从服务器上完全删除一个文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17548906/

相关文章:

php - MySQL和php连接错误

PHP DOMDocument 日语字符编码问题

javascript - ajax方法返回错误时如何打印输出?

javascript - 使用 JavaScript 在 HTML 中提交多个表单

php - 没有可见的感谢页面的Google Analytics(分析)电子商务跟踪

php - 如果我们谈论 InnoDB 中具有唯一索引的表,事务会相互等待还是并行工作?

javascript - PHP 从 SVG 中读取 ImageBlob

php - @Part List< MultipartBody.Part> 在 php 中

php - 在 php 中通过多维数组进行更清晰的循环

javascript - 无法将 Canvas 转换为图像 - 服务器端