Protéger le téléchargement des fichiers zip

5/5 (7 avis)

Vue 15 617 fois - Téléchargée 1 742 fois

Description

Tant que la session ne l'autorisera pas, il sera impossible de télécharger le fichier ZIP (quoi que l'internaute puisse en penser).

Ce code source a été imaginé suite à la visite d'un gros site de m***e qui mettait 5 minutes d'attente (édulcorées de publicités bien sûr) pour des fichiers qui ne font 200 ko. En tapant le nom du fichier en guise d'URL, on était redirigé vers pire encore.

Le principe de ce système est le suivant:

1) Il faut dire à Apache que les ZIP sont des fichiers PHP, quitte ensuite à modifier le Header. Le HTACCESS s'en charge.

2) Il faut sécuriser les fichiers ZIP envoyés sur le serveur. Pour cela, on utilise SECURE_FILE.PHP: on tape son nom (ex: 02.zip) et on poste le fichier. Le script insère en début et fin de fichier des commandes PHP, et stocke le fichier dans un répertoire spécifique. Le début vérifie l'autorisation de téléchargement par une session, et la fin efface la permission.

3) Si on tape l'URL du fichier, on est redirigé sur l'accueil par le début. Si on est autorisé, on récupère le fichier et on efface l'autorisation de la session. Après téléchargement, le fichier ZIP est tel qu'il était avant d'être sécurisé par le serveur.

4) Même en étant sécurisé sur le serveur, l'expérience montre que le fichier n'est pas corrompu et qu'il peut toujours être décompressé par WinZip. En revanche, il ne peut plus être modifié.

Au final, voici une protection bien sympathique. Tout dépend après si on veut faire patienter l'internaute...

Conclusion :


Vous pouvez toujours aller visiter http://altert.family.free.fr/

Codes Sources

A voir également

Ajouter un commentaire Commentaires
scanner68 Messages postés 12 Date d'inscription jeudi 6 octobre 2005 Statut Membre Dernière intervention 8 juin 2008
3 juin 2008 à 19:59
le script ne marche pas j'ai tester sur free et en local rien n'a faire sa veut pas marcher :'(
cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 9
31 août 2005 à 13:58
non je ne l'ai pas oublié je n'ai pas écrit tout le contenu du htaccess, juste la ligne correspondante, mais bon c'est vrai que j'aurais pu le rajouter ;-)

d'ailleurs sur certains serveurs il faut rajouter Options+FollowSymlinks

avant le RewriteEngine à on
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
31 août 2005 à 11:16
antho, t'as oublié RewriteEngine=ON;
et tu peux aussi le faire a partir des erreurs 404 : renvoyer vers un script php.
cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 9
30 août 2005 à 17:00
tu peux très bien utiliser l'url rewriting pour faire ceci (une ligne dans un htaccess)

RewriteRule ^[a-z-A-Z0-9\-_]*.zip$ /telechargement.php?fichier=$1.zip

et hop ;-)
cs_grandvizir Messages postés 1106 Date d'inscription samedi 8 novembre 2003 Statut Membre Dernière intervention 3 septembre 2006 22
30 août 2005 à 16:55
Ca dépend sur quels types de ZIP t'as envie de cliquer.

Compare donc ces deux actions PHP :
http://domain.com/pour_toi_anthomicro.zip
http://domain.com/protected.php?file=pour_toi_anthomicro.zip

C'est sur le premier que tu as envie de cliquer. Et pourtant, tu peux pas le récupérer si je rajoute des entêtes et pieds-de-page en PHP.

Naturellement, si tu as 2000 fichiers ZIP, là tu forces le download avec une page PHP couplée à un .HTACCESS

PS: "http://domain.com" est un nom choisi du hasard pour illustrer l'exemple
Afficher les 7 commentaires

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.