Ouvre le fichier en mode binaire pour écriture, écrit des 1 sur l'ensemble du fichier, ferme le fichier, puis le dissocie. écrase toutes les données contenues dans le fichier de manière à ce qu'elles ne puissent pas être récupérées.
Personnellement, je dirais qu'il faut utiliser des 1 plutôt que des 0, car les 1 sont des données réelles et s'écrivent toujours, alors que les 0 peuvent ne pas s'écrire, en fonction de plusieurs facteurs.
Edita: Après avoir réfléchi et lu les commentaires, j'opterais pour une approche hybride, en fonction du "degré de suppression" que vous souhaitez pour le fichier. Si vous souhaitez simplement faire en sorte que les données ne puissent pas être récupérées, écrasez toute la longueur du fichier avec des 1, car cette méthode est rapide et détruit les données, mais le problème est qu'elle laisse une longueur déterminée de données uniformes sur le disque, ce qui laisse supposer qu'il y avait un fichier auparavant et donne la longueur du fichier, ce qui fournit des éléments d'information essentiels pour la police scientifique. Le simple fait d'écrire des données aléatoires ne permet pas non plus d'éviter ce problème, car si tous les secteurs du disque autour de ce fichier sont intacts, cela laissera également une trace médico-légale.
La meilleure solution en tenant compte l'effacement judiciaire, l'obscurcissement et le déni plausible (encore une fois, c'est exagéré, mais je l'ajoute pour le plaisir de l'ajouter), écrasez toute la longueur du fichier avec des 1 et ensuite, pour la MOITIÉ de la longueur du fichier en octets, écrivez à partir de mt_rand
de longueurs aléatoires, à partir de points de départ aléatoires, ce qui donne l'impression que de nombreux fichiers de longueurs variables se trouvaient dans cette zone, créant ainsi une fausse piste. (encore une fois, c'est complètement exagéré et n'est généralement nécessaire que pour les tueurs en série et la CIA, mais je l'ajoute pour le plaisir de le faire).
1 votes
Unlink() ; la sécurité est assurée par vous
3 votes
Ceci est lié au système d'exploitation (comment il supprime le fichier), cependant, vous pouvez d'abord tronquer (vider) le fichier et ensuite le supprimer, +1 belle question.
0 votes
@Akam cela ne garantit pas que le fichier soit supprimé, seule sa longueur peut changer. Je suggère d'abord de l'écrire entièrement avec des zéros, puis de le supprimer, mais ce n'est pas non plus sûr à 100 %.
0 votes
Cela ne répond pas à votre question, mais je pense que vous ne fixez pas les bonnes priorités en matière de sécurité (sécurisation prématurée ?). Il n'y a aucune chance qu'un utilisateur normal du système puisse récupérer votre fichier si vous utilisez unlink. Les solutions proposées sont peut-être correctes, mais elles dégradent tellement les performances de votre application web que cela ne vaut guère la sécurité supplémentaire que vous gagnez. Vous devriez plutôt vous préoccuper des problèmes de sécurité qui vont réellement avoir de l'importance, comme les attaques XSS ou CSRF.