Messages: 4

Enregistré le: 2 Avr 2013

Message le Lun Avr 18, 2016 13:40

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.
Modifié en dernier par luxojr le Lun Avr 18, 2016 14:38, modifié 1 fois.
Haut
4 Réponses
Messages: 112

Enregistré le: 22 Fév 2016

Message le Lun Avr 18, 2016 13:50

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.
Haut
Messages: 4

Enregistré le: 2 Avr 2013

Message le Lun Avr 18, 2016 15:40

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.
Haut
Messages: 112

Enregistré le: 22 Fév 2016

Message le Lun Avr 18, 2016 16:15

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
Haut
Messages: 4

Enregistré le: 2 Avr 2013

Message le Mar Avr 19, 2016 8:01

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
Haut