Da un po 'di tempo utilizzo l'eccellente libreria Defuse PHP Encryption per l'archiviazione di stringhe di dati crittografate in un database.
Ho un'estensione di questa esigenza in cui ora ho file che devono essere caricati e protetti a riposo. questi file non sono in genere più grandi di 500Kb di documenti.
Ho esaminato la crittografia Defuse / PHP File
class e il sistema sembra funzionare perfettamente per salvare i file appena caricati.
Tuttavia, sto esplorando il metodo migliore per aprire questi file crittografati. La classe Defuse\Crypto\File
ovviamente può decrittografare i file ma sembra essere in grado di decrittografarli in un altro file di testo in chiaro .
È possibile decrittografare il file e inviarlo a una stringa solo?
Se ad esempio qualcuno apre un file crittografato, viene decodificato per tutto il tempo che si trova su quella pagina (il contenuto del file verrà visualizzato / scaricato tramite una pagina intermedia di PHP in modo che il percorso del file stesso non venga mai presentato al utente) il file di testo in chiaro sarebbe seduto sul server e potenzialmente accessibile a chiunque possa raggiungerlo.
Con questo in mente ho alcune domande:
-
Esiste la possibilità che - Utilizzando Defuse PHP Encryption - un file crittografato possa essere decriptato su un flusso / stringa (PHP), in modo da evitare un file di testo in chiaro sul server per qualsiasi importo di tempo?
-
Ho (solo) considerato un approccio per salvare un file di testo in chiaro sul server, quindi usando
file_get_contents
e poiunlink
ing il file di testo in chiaro. (Questo è il mio approccio preferito al momento, ma ci ho pensato solo mentre scrivevo questa domanda)-
Sui server Linux, credo che sarebbe preferenziale sovrascrivere i file come con
random_bytes
prima diunlink
ing il file di testo in chiaro. È corretto?Il mio pensiero su questo proviene da un collegamento elimina solo il collegamento al file e quindi (potenzialmente) il file potrebbe ancora esistere nella pratica (anche se più difficile da raggiungere) finché il disco locale non esegue le normali operazioni di pulizia.
-
-
C'è qualche vantaggio -come un concetto- invece di caricare i dati del file in chiaro dal caricamento e crittografare quella stringa di dati con
Defuse\Crypto\Crypto
e poi salvare questoCrypto
di dati crittografati blob nel file di archiviazione?
Link di ricerca
Ho letto il github per la libreria, e ho anche letto i problemi e i commenti relativi alla decifratura dei file nei flussi ma questi problemi / commenti hanno riguardato di più le dimensioni eccessive dei file (e il fatto che l'intero file deve essere letto). Questi non si applicano nel mio caso.
Ho letto anche un top post dalla pagina di manuale di scollegamento PHP che sembrava confermare i miei pensieri su unlink
.