Frage

ich als tmpnam mit dem Ausgabedateinamen eines QPrinter einzustellen. Aber die Python-Dokumentation empfiehlt dagegen verwenden.

  

os.tmpnam ()

     

Gibt einen eindeutigen Pfadnamen, die eine temporäre sinnvoll ist für die Erstellung von   Datei. ... Anwendungen sind verantwortlich   für richtig Erstellung und Verwaltung   Dateien erstellt Pfade unter Verwendung von zurück   tmpnam (); keine automatische Bereinigung   zur Verfügung gestellt.

     
    

Warnung

         

Die Verwendung von tmpnam () ist für Symlink-Attacken anfällig; prüfen, mit     tmpfile () (Abschnitt Datei-Objekt     Creation) statt.

  
     

Fenster: Microsoft   Umsetzung von tmpnam() immer   schafft einen Namen im Stammverzeichnis   des aktuellen Laufwerks, und das ist   im Allgemeinen ein schlechter Ort für eine temporäre   Datei (auf Privilegien abhängig, können Sie   nicht einmal eine Datei öffnen können mit   dieser Name).

  • Ist das wirklich unsicher, wenn meine Anwendung keine besonderen Privilegien nicht braucht?
  • Was erwägen sichere Alternativen, dass ich nur einen Pfad als Ausgabedateiname des QPrinter einstellen kann?
War es hilfreich?

Lösung

Bitte lesen Sie http://docs.python.org/library/tempfile.html

verwenden, die statt.

Andere Tipps

Je nachdem, wie QPrinter beschäftigt sich mit einer Datei, die bereits vorhanden ist, Sie QTemporaryFile verwenden könnte eine Datei zu erstellen, und schließen Sie die Datei und halten den Verweis auf das QTemporaryFile Objekt herum, bis Sie damit fertig sind. (Dies wird auch die Datei für Sie bereinigen, wenn Sie das Objekt zu zerstören.)

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top