| Accueil > Addons > ProtegeDocs | Contact | Imprimer | English translation |
Patch ProtegeDocs
(c) PyG : dev@cornalys.com -- v0.1 21/11/2003
Code sous licence
GNU/GPL
Objet
Permet de protéger les documents d'un dossier (par exemple le dossier /groupes) d'un accès direct par un stagiaire mal intentionné.
Limitations
Utilisation
Cas concret :
Vous hebergez Ganesha sur un site ayant pour adresse http://www.monganesha.com/
Vous avez différentes formations, dont un groupe "Physique / Chimie"
que l'administrateur à nommé "phys_chimie" lors de la
création du groupe.
Vous avez, via la partie "Documents" de Ganesha, mis en ligne différents fichiers PDF pour ce groupe.
Vous avez eu un stagiaire en formation qui a utilisé Ganesha et qui faisait partie du groupe "Physique/chimie".Pendant sa formation, il a réussi à repérer l'adresse de fichiers PDF. Par exemple :
http://www.monganesha.com/groupes/phys_chimie/fichier.pdf
Sa formation terminée, il n'a plus accès à la plateforme. Cependant, il peut toujours accéder aux documents en entrant directement l'adresse ci-dessus dans son navigateur sans avoir à s'identifier dans la plateforme !
Si vous voulez éviter cela (pour une raison ou une autre), vous devez :
1- Repérer les pages à partir desquelles les stagiaires auront un droit d'accès (en faisant un clic-droit => propriétés).
Exemple pour la partie "Documents" : http://www.monganesha.com/stagiaire/index.php?(...)
2- créér dans le dossier à protéger ("/groupes/phy_chimie" dans l'exemple, voire carrément "/groupes") un fichier .htaccess
Astuce : Windows n'aime pas trop les fichiers commencant par un point : nommez-le htaccess.txt, vous le renommerez une fois en ligne.
3- Comme contenu de ce fichier, mettez :
Options +FollowSymlinks
RewriteEngine on
RewriteCond %{HTTP_REFERER} !^http://www.monganesha.com/stagiaire/index.php
RewriteRule .*\.(gif|png|jpe?g|pdf)$ - [F]
4- Envoyez ce fichier en ligne (et renommez le en .htaccess si besoin)
5- C'est tout, vous ne devriez plus avoir accès au fichier. Si le fichier s'affiche toujours c'est qu'il se trouve dans le cache (videz-le !) ou que votre serveur refuse cette méthode (désolé !).
Explications succintes
Options +FollowSymlinks
RewriteEngine on
=> Lancent le moteur RewriteEngine d'apache
RewriteCond %{HTTP_REFERER} !^http://www.monganesha.com/stagiaire/index.php
=> Se traduit par "Si l'adresse d'où l'on vient ne commence PAS par "http://www.monganesha.com/stagiaire/index.php", alors...
RewriteRule .*\.(gif|png|jpe?g|pdf)$ - [F]
=> ..alors l'accès au fichier se terminant par .gif .png .jpg .jpeg ou .pdf doivent déclencher une erreur (="[F]")
NB : vous pouvez utiliser plusieurs conditions "RewriteCond" en mettant les lignes les unes sous les autres, par exemple pour gérer le cas des stagiaires ne mettant pas le "www" :
RewriteCond %{HTTP_REFERER} !^http://www.monganesha.com/stagiaire/index.php
RewriteCond %{HTTP_REFERER} !^http://monganesha.com/stagiaire/index.php
Attention :
L'utilisation du RewriteEngine n'est pas simple : testez bien ses fonctionnalités avant de les utiliser en production.
Pour plus d'information, voir ici ou carrément la doc du mod_rewrite
| Accueil > Addons > ProtegeDocs | Contact | Imprimer | English translation |