Come insicuro è / sostituzione per tmpnam?
Domanda
ho considerato con tmpnam
per impostare il nome del file di output di una QPrinter
. Ma la documentazione Python raccomanda di non usarlo.
os.tmpnam ()
Restituisce un percorso unico che è ragionevole per la creazione di una temporanea file. ... Le applicazioni sono responsabili per la corretta creazione e la gestione I file creati utilizzando i percorsi restituiti da tmpnam (); nessuna pulizia automatica fornito.
Attenzione
L'utilizzo di tmpnam () è vulnerabile agli attacchi symlink; considerare l'utilizzo tmpfile () (sezione oggetto File Creazione), invece.
di Windows: Microsoft implementazione di
tmpnam()
sempre crea un nome nella directory principale dell'unità corrente, e questo è generalmente una pessima posizione per una temperatura File (a seconda dei privilegi, si può anche non essere in grado di aprire un file utilizzando questo nome).
- È davvero insicura se la mia domanda non ha bisogno di particolari privilegi?
- Quali sono le alternative sicure considerando che posso solo impostare un percorso come il nome del file di output del
QPrinter
?
Soluzione
Si prega di leggere http://docs.python.org/library/tempfile.html
L'uso che, invece.
Altri suggerimenti
A seconda di come le vostre offerte QPrinter con un file già esistente, è possibile utilizzare QTemporaryFile per creare un file, quindi chiudere il file e mantenere il riferimento all'oggetto QTemporaryFile intorno fino a quando si è fatto con esso. (Questo sarà anche ripulire il file per voi quando si distrugge l'oggetto.)