Re: Ada.Text_IO - Interruption penda nt l'écriture
Thomas De Contes via Ada-france <[email protected]> Mon, 10 Jan 2022 00:52:44 +0100
| Newsgroups | gmane.comp.lang.ada.france |
|---|---|
| Message-ID | <[email protected]> |
Le 6 déc. 2021 à 22:34, Jean-Pierre Rosen a écrit : > Le 06/12/2021 à 16:25, Thomas De Contes a écrit : >> En fait, l'usage que je voulais en faire c'est implémenter un mécanisme pour minimiser les inconvénients en cas d'interruption pendant l'écriture : >> - Trouver un répertoire pour fichiers temporaires >> - Écrire le nouveau fichier dedans >> - Effacer l'ancien fichier >> - Déplacer le nouveau fichier à sa place >> Ça permet de remplacer l'ancien fichier par le nouveau de façon quasi-atomique (pas tout à fait, puisqu'on doit faire Ada.Directories.Delete_File avant Ada.Directories.Rename, mais presque). >> As-tu des recommandations à me donner dans ce domaine ? > En fait, il y a une séquence critique, et il parait que certains trous de sécurité exploitent des choses comme ça: entre le moment où tu effaces le fichier et celui du move, un intrus peut créer un fichier piégé avec le nom qui va bien... C'est un peu parano, mais plutôt que d'effacer l'ancien fichier, il vaut peut-être mieux l'écraser avec le nouveau. Ada.Directories.Rename refuse d'écraser un fichier. Est-ce que ta suggestion c'est de : - Créer un fichier temporaire, et le fabriquer comme on veut - Ouvrir l'ancien fichier en écriture, et recopier le fichier temporaire dedans le plus rapidement possible ? J'ai un peu de mal à voir quel genre de faille ça évite. Mais bon je ne suis pas calé là dessus, d'une manière générale je crains bien plus les pannes que les vols (typiquement, la sécurité des données pour moi c'est beaucoup plus synonyme de sauvegardes multiples que de chiffrement). Avec ma formule, le temps pendant lequel il n'y a pas de fichier complet est plus court, et il n'y a pas de moment où le fichier est incomplet. Pour la cohérence des données, ça me parait plus sur. (C'est à comparer au problème de sécurité que je n'ai pas bien compris, bien sur. Et si j'ai bien compris, pour ce problème de sécurité, ce qui importe c'est qu'à tout instant le fichier existe, peu importe son contenu.) -- RAPID maintainer http://savannah.nongnu.org/projects/rapid/ _______________________________________________ Ada-france mailing list [email protected] https://mail.ada-france.org/cgi-bin/mailman/listinfo/ada-france