Безопасное удаление с помощью PHP 5.3.x
Знает ли кто-нибудь хорошее решение PHP для удаления или лучшего удаления файла из системы Linux?
Сценарий: Файл зашифрован и сохранен, при запросе загрузки файл копируется во временную папку и расшифровывается. Это уже работает.
Но как удалить файл из временного хранилища после отправки пользователю?
На мой взгляд, у меня есть следующие варианты:
- Откройте файл с помощью "fopen" и напишите в него 0,1 (подумайте очень медленно)
- Сохраните файл в Memcache вместо жесткого диска (может быть проблема с моим хостером)
- Используйте инструмент somd 3rd pary в командной строке или в качестве cronjob (может возникнуть проблема с установкой)
Цель: Удалить файл с жесткого диска без возможности восстановления (стереть/перезаписать)
2 answers
Возможно, лучше всего вообще никогда не сохранять файл в его расшифрованном состоянии.
Скорее используйте потоковые фильтры , чтобы расшифровать его на лету и отправить непосредственно конечному пользователю.
Обновление
Ваш вариант 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
, но это будет медленно.