Protéger mes fichiers d'un lien extérieur

  • Auteur de la discussion Auteur de la discussion luxojr
  • Date de début Date de début
Nouveau WRInaute
Bonjour à toutes et à tous,
Voilà le sujet, j'ai un dossier qui contient un ensemble de fichiers PDF. Je viens de remarquer qu'il y a des sites (pas toujours sérieux...) qui créent des liens directs sur mes fichiers PDF, ce qui fausse mes statistiques 'normales' de consultation. J'ai déjà une protection de mon dossier via un fichier .htaccess qui contient la ligne suivante : Options All -Indexes.
Les fichiers PDF contenus dans ce dossier sont pour le téléchargement via une page web dédiée.
Est-ce suffisant, ou dois-je aller plus loin. Je suis novice en ce qui concerne le fichier '.htaccess'.
Merci pour votre réponse.
Bien à vous.
 
WRInaute discret
si tu peux toujours accèder aux fichiers, c'est que cela ne suffit pas.
le bon moyen, c'est de bloquer carrément à tous l'accès direct au contenu du répertoire, et de permettre l'accès par un fichier php qui va vérifier des conditions avant de renvoyer le pdf.
 
Nouveau WRInaute
Merci pour votre réponse,
Je comprends bien la situation, je cache juste les fichiers mais ils sont toujours accessibles.
Après quelques recherches, j'ai trouvé cela à mettre dans mon .htaccess :

deny from all
<File monfichier>
allow from all
</Files>

J'interdis l'accès à tout le monde, sauf à mon fichier 'monfichier'.
Pour 'monfichier', je pensais mettre en place un fichier php qui prend en charge le téléchargement.
Est-ce une bonne idée ? :D
Bien à vous.
 
WRInaute discret
non, car le lien direct fonctionnera toujours.
il faut mettre le deny from all sans execption, et permettre l'accès par php, qui lui n'est pas impacté par le .htaccess
 
Nouveau WRInaute
Bonjour,
Merci pour votre réponse.
Pouvez-vous préciser ce que cache 'permettre l'accès par php'
Voilà un exemple de code pour le téléchargement d'un fichier via php :

<?php

/*******************************************************
* Déclaration de la fonction
*******************************************************/

/**
* La fonction force le téléchargement d'un fichier
*
* @author : Hugo HAMON
* @param : string $nom nom du fichier
* @param : string $situtation emplacement sur le serveur web
* @param : integer $poids poids du fichier en octets
* @return : void
**/
function forcerTelechargement($nom, $situation, $poids)
{
header('Content-Type: application/octet-stream');
header('Content-Length: '. $poids);
header('Content-disposition: attachment; filename='. $nom);
header('Pragma: no-cache');
header('Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0');
header('Expires: 0');
readfile($situation);
exit();
}

/*******************************************************
* Appel de la fonction
*******************************************************/
forcerTelechargement('compte.pdf', './documents/compte.pdf', 10000);

?>


Est correct ?
Bien à vous
 
Discussions similaires
Haut