Aller au contenu
sparh

Protéger les documents du téléchargement (via leur url)

Noter ce sujet :

Recommended Posts

Bonjour,


sur mon site j'upload pas mal de documents.


Les documents sont placés dans un dossier par exemple : images/documents/fichier.pdf



J'aurai aimé que les documents ne soient lisible/téléchargeables que pour les utilisateurs connectés (via une session PHP) au site.


Le plus simple aurai été de bloquer l'accès à tel dossier si la session PHP n'existe pas mais ce n'est pas possible.



La seule solution que j'ai trouvé pour l'instant c'est :


dans le fichier htaccess : rediriger le dossier concerné (celui qui contient les documents à protéger) vers une page php qui vérifiera que la personne est connecté, si oui la page affiche le document :


- htaccess --> RewriteRule images/(.*) check_connect.php?url=$1 [QSA,L,R=301]


- check_connect.php -->



verif_connexion();

$url = $_GET['url'] ;
$adresse_fichier = 'images/'.$url ;

$mime = mime_content_type($adresse_fichier) ;

$fp = fopen($adresse_fichier, 'rb');
header("Content-Type: ".$mime);
header("Content-Length: " . filesize($adresse_fichier));
fpassthru($fp);
exit;

Que pensez vous de cette solution ?


Avez des idées d'amélioration ou carrément d'autres idées pour protéger mes documents ?


Merci d'avance


Partager ce message


Lien à poster
Partager sur d’autres sites

Bonjour,


car je souhaite que TOUS ceux qui ont un login valable puissent accéder aux documents et non pas seulement le propriétaire.

Partager ce message


Lien à poster
Partager sur d’autres sites

Il faut jouer avec les headers comme le montre l'exemple #1. Donc suffit de poser les conditions de départ (visiteur ou utilisateur?) puis si la condition est vraie alors on envoie le header correspondant.


Partager ce message


Lien à poster
Partager sur d’autres sites

Créer un compte ou se connecter pour commenter

Vous devez être membre afin de pouvoir déposer un commentaire

Créer un compte

Créez un compte sur notre communauté. C’est facile !

Créer un nouveau compte

Se connecter

Vous avez déjà un compte ? Connectez-vous ici.

Connectez-vous maintenant

  • Contenu similaire

    • Par Jiizen
      Bonjour, 
       
      Je ne sais pas si je suis dans la bonne section car je suis un peu perdue. Mon mari a sa petite entreprise et je gère tout ce qui est devis, factures, clients, etc... Nous faisons tout en Excel : autant pour la gestion d'informations, les calculs, que pour générer les devis, les factures, etc... 
       
      Cela fonctionne très bien mais je me suis demandée si créer une application web personnelle ne permettrait pas de mieux centraliser le tout, modifier plus facilement les informations et de faire des recherches plus précises.
       
      Mais pour les documents, je me demande comment procéder... 
      Je sais que l'on peut générer des Excel à partir d'une librairie, comme PHPExcel, par exemple. Mais est-ce que ce serait vraiment intéressant de surcharger la base pour créer des fichiers à la volée à chaque fois... ? Je ne sais pas si ce serait vraiment faisable et flexible. Pour chaque ligne et chaque prix, ce serait peut-être trop lourd à gérer... ? 
      Ou sinon, j'ai juste pensé à avoir des liens qui pointeraient sur les PDF et les Excel mais il faudrait que ce soit HORS de mon dossier applicatif et que je puisse faire le lien vers un autre serveur : est-ce que c'est possible de faire ça ? 
      J'ai aussi vu en fouillant qu'il existait des bases de données NOSQL orientées documents mais je ne connais pas la souplesse de ces bases (notamment par rapport à Excel) et me demande aussi si une base SGBDR peut facilement communiquer avec ce genre de bases ? 
       
      C'est un peu long mais j'avoue que je suis un peu paumée et que je ne sais pas quelle serait la meilleure façon de procéder pour centraliser données et fichiers et avoir accès à tout très facilement. Peut-être que le gain de temps ne vaudrait pas la peine, après...  ? 
       
      Quelle est votre avis sur l'idée générale et quelles seraient vos idées pour gérer les documents ? 
       
      Je vous remercie pour vos réponses. 
       
      Bonne journée. 
×