Сохранение файлов PHP (/ PHP-FPM / Apache), временно загружаемых из ОЗУ, а не в файловая система (или только зашифрованная)?

Исходный вопрос

Итак, проект, над которым я работаю, смертельно параноидален в отношении загрузки файлов.
В рамках этого вопроса я не использую этот термин в отношении полезной нагрузки; Я говорю о конфиденциальности .

Программы всегда могут дать сбой и оставить временные файлы бездельничать в файловой системе. Это нормально. слегка параноик конфиденциальности может написать задание cron, которое попадает во временную папку с файлами каждые несколько минут и удаляет все, что старше нескольких секунд до вызова cronjob (не все , просто потому, что в противном случае он может поймать файл в процессе загрузки).

... к сожалению, мы идем дальше в этом параноидальном смысле:

В идеале, мы бы хотели никогда не видеть временные файлы из загружаемых файлов где-либо, кроме как в процессе - связанная RAM.

Есть ли способ научить PHP искать временные файлы в виде больших двоичных объектов в памяти, а не в файловой системе? Мы используем PHP-FPM в качестве обработчика CGI и Apache в качестве нашего веб-сервера, на случай, если это облегчит задачу . (Также обратите внимание: здесь ключевым словом является «файловая система», а не «диск», поскольку, конечно, есть способы сопоставить файловую систему с ОЗУ, но это не решает проблемы доступности и автоматической очистки после сбоя. )

В качестве альтернативы, есть ли способ зашифровать эти временные файлы сразу после их записи на диск , чтобы они никогда не хранились в файловой системе без шифрования?


Обзор темы

К сожалению, я могу принять только один ответ - но всем, кто это читает, вся цепочка чрезвычайно ценна и содержит коллективные идеи многих людей. В зависимости от того, вы надеетесь достичь, принятый ответ может вас не заинтересовать . Если вы пришли сюда через поисковую систему, пожалуйста, найдите время, чтобы прочитать всю цепочку .

Вот подборка вариантов использования, которые я вижу для быстрого ознакомления:

Re: PHP's временные файлы

  • RAM вместо диска (например, из-за проблем с вводом-выводом) → RAMdisk / сопоставимый ( плазмида87 , m изучают различные способы элегантного получения данных из двух или более соединенных таблиц. Я считаю, что MergeCursor (Руководство для разработчиков Android), похоже, подразумевает, что может (например) заменить эквивалентный SQL ...

    Я изучаю различные способы элегантного получения данных из двух или более объединенных таблиц.

    Я считаю MergeCursor , ( Руководство разработчика Android ), похоже, подразумевает, что можно (например) заменить эквивалентный SQL UNION путем объединения двух запросов (или добавления представлений по отдельности в виде строк и т. д.) - это не то, что я хочу.

    Но я не понимаю, для чего конкретно нужны CursorJoiner и MatrixCursor , или как их использовать. Я посмотрел на их источник, и (как обычно) для меня это ничего не значит! Примеры, которые я нашел в их использовании, не Я четко объяснил, каков был результат. Я был бы очень признателен за их хорошее описание и контекст, в котором они могут быть использованы.

37
задан Luksprog 16 April 2012 в 09:08
поделиться