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

Soyez le premier à donner votre avis sur cette source.

Vue 15 379 fois - Téléchargée 1 716 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
Messages postés
12
Date d'inscription
jeudi 6 octobre 2005
Statut
Membre
Dernière intervention
8 juin 2008

le script ne marche pas j'ai tester sur free et en local rien n'a faire sa veut pas marcher :'(
Messages postés
9433
Date d'inscription
mardi 9 octobre 2001
Statut
Membre
Dernière intervention
13 avril 2007
9
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
Messages postés
12303
Date d'inscription
mardi 10 février 2004
Statut
Modérateur
Dernière intervention
30 juillet 2012
42
antho, t'as oublié RewriteEngine=ON;
et tu peux aussi le faire a partir des erreurs 404 : renvoyer vers un script php.
Messages postés
9433
Date d'inscription
mardi 9 octobre 2001
Statut
Membre
Dernière intervention
13 avril 2007
9
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 ;-)
Messages postés
1106
Date d'inscription
samedi 8 novembre 2003
Statut
Membre
Dernière intervention
3 septembre 2006
21
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.