openssl_pkcs7_encrypt()
richiede che i dati vengano crittografati per essere letti da un file e quindi sfortunatamente richiede che i dati sensibili vengano scritti nel file temporaneo prima che sia crittografato.
In un ambiente di hosting condiviso, quali passi posso intraprendere per minimizzare il rischio che i dati sensibili vengano letti / rubati quando si deve scrivere temporaneamente in un file temporaneo?
Il codice:
$file = tempnam(sys_get_temp_dir(), 'mail');
file_put_contents($file, $body);
$encrypted = tempnam(sys_get_temp_dir(), 'encrypted');
if (openssl_pkcs7_encrypt($file, $encrypted, "cert.pem", NULL)) {
@unlink($file);
$body = file_get_contents($encrypted);
@unlink($encrypted);
} else {
@unlink($file);
@unlink($encrypted);
}
Le poche cose che mi riguardano sono:
-
sys_get_temp_dir()
a seconda dell'ambiente / host, questo può variare. - Chiamerebbe
file_put_contents($file, "");
prima che@unlink($file)
faccia la differenza? - Immagino che un
throw…catch
attorno a tutto con le chiamate@unlink
possa anche aiutare