Protéger des fichiers.

Eléphant du PHP | 50 Messages

23 janv. 2009, 18:47

Bonjour,

Mes membres ont accès à des téléchargements et j'aimerai que ceux-ci ne soient accessible que aux membres. En effet, si un membre copie le lien source et le passe à un ami non membre, vu que l'adresse du fichier ne change pas, celui-ci peut le télécharger ! Comment me protéger sachant que la connexion est gérée pas SESSION.

Merci d'avance,
JC.
Devoir de mémoire : http://voyage-etude-auschwitz.net
Projet de classe réalisé suite à un voyage au camp d'Auschwitz.

ViPHP
ViPHP | 3607 Messages

23 janv. 2009, 18:50

Bonjour,
Il faut que tu passes par un script intermédiaire, qui vérifie si oui ou non la session et valide, et ensuite propose le fichier au téléchargement, à l'aide d'entêtes apropriées (cf header() )

Eléphant du PHP | 50 Messages

23 janv. 2009, 19:01

Ok mais si le membre à l'adresse du fichier n'y a-t-il pas accès ? Et aussi, je n'ai pas précisé mais je souhaite également mettre des PDF dans l'espace membre. Comment les verrouiller pour un accès uniquement aux membres ?
Devoir de mémoire : http://voyage-etude-auschwitz.net
Projet de classe réalisé suite à un voyage au camp d'Auschwitz.

ViPHP
AB
ViPHP | 5818 Messages

23 janv. 2009, 20:33

Mets tes fichiers dans un répertoire protégé par un .htacces avec "deny from all" et pour le téléchargement utilises force download.

Eléphant du PHP | 50 Messages

23 janv. 2009, 21:27

Et comment je peux afficher le PDF sans demander le pass si le dossier contenant le PDF est deny from all ?

Merci pour ta réponse !
Devoir de mémoire : http://voyage-etude-auschwitz.net
Projet de classe réalisé suite à un voyage au camp d'Auschwitz.

Eléphant du PHP | 453 Messages

23 janv. 2009, 22:11

Salut tout le monde,
Mets tes fichiers dans un répertoire protégé par un .htacces avec "deny from all" et pour le téléchargement utilises force download.
J'ai eu la même idée qu'AB qui est très juste mais je crois qu'il y a nettement plus simple :
session_start()

if(!empty($_SESSION['login'] || $_SESSION['login']==$nom)
  //accès au téléchargement
else
  //pas de téléchargement possible
++
La Tux attitude avec les kiw'z syou plait
Komodo Edit - Inkscape - Dia

Eléphant du PHP | 50 Messages

23 janv. 2009, 22:21

Tu n'as pas compris mon problème !
Si je fais ça je suis d'accord qu'il ne peut pas télécharger sans être connecté ni voir le PDF mais !

Imagine tu te connecte
Tu copie l'adresse du fichier que tu télécharge
Et tu te déconnecte

bah si tu revas sur le lien source du fichier tu peut le télécharger car le fichier en lui mm n'est pas verrouillé, juste l'accès au lien du fichier tu comprends ?

++
Devoir de mémoire : http://voyage-etude-auschwitz.net
Projet de classe réalisé suite à un voyage au camp d'Auschwitz.

ViPHP
AB
ViPHP | 5818 Messages

23 janv. 2009, 22:22

Et comment je peux afficher le PDF sans demander le pass si le dossier contenant le PDF est deny from all ?

Merci pour ta réponse !
Tu parlais tout à l'heure de téléchargement, pas d'affichage. Alors que veux tu faire vraiment ?

Sinon même quand on utilise la méthode force download le navigateur propose l'affichage du fichier ou le téléchargement.

Mammouth du PHP | 991 Messages

23 janv. 2009, 22:35

Ceci n'empeche pas le téléchargement par l'url , alors que le .htaccess oui.

Bye Hawk

Edit : Réponse a Nolhem
DevOps, Symfony4, Hoa

ViPHP
AB
ViPHP | 5818 Messages

23 janv. 2009, 22:36

Ah oui petite précision, un fichier .htacess avec "deny from all" protège tes fichiers te tout accès extérieur mais pas d'un script php interne à ton site. Donc en utilisant la méthode de téléchargement force download avec un script php tu pourras autoriser le téléchargement aux seules personnes ayant accès à ce script :wink:

Eléphant du PHP | 50 Messages

23 janv. 2009, 22:43

Ha bon donc pour le téléchargement c'est nickel merci !

Et sinon le deuxième cas est le suivant :
j'ai des fichier PDF sur le serveur que j'affiche dans des frames dans mes pages mais je ne veux pas que les utilisateurs est accès non connecté !

Ta méthode marche-t-elle également ?

--------------------------------------------------------

Autre chose : ma nouvelle question est la suivante : Comment écrire un htacess deny for all... J'ai un peu de mal !
Je dois y mettre quoi dedans au juste :shock: ??

Merci !
+

Mammouth du PHP | 991 Messages

23 janv. 2009, 23:01

Normalement oui ;), le mieux est de tester c'est la meilleur des solutions
DevOps, Symfony4, Hoa

Eléphant du PHP | 50 Messages

23 janv. 2009, 23:02

Et pour le contenu du fichier htacess ?^^

PS : J'ai mis ça dans mon htaccess :

Code : Tout sélectionner

deny from all
et j'obtiens un FORBIDEN et sur le fichier et dans la frame... Hors je me dis maintenant que vus que la frame affiche juste une page, il va être compliqué de ne pas avoir un FORBIDEN non ?
Modifié en dernier par Jeremieca le 23 janv. 2009, 23:09, modifié 1 fois.

Mammouth du PHP | 991 Messages

23 janv. 2009, 23:08

htaccess est un fichier utilisé par apache pour effectuer une configuration local , donc son accès est impossible hormis par un accès FTP bien sur

Complément : http://www.commentcamarche.net/contents ... pacht.php3
DevOps, Symfony4, Hoa

Eléphant du PHP | 50 Messages

23 janv. 2009, 23:10

Ok j'ai édité a même temps que tu me répondais, regarde mon message précédent à nouveau STP !

+