Warning: fopen(logv.txt): failed to open stream: Permission denied in /home/keonox/www/pyg/ganesha/inc.php on line 61

Warning: fputs(): supplied argument is not a valid stream resource in /home/keonox/www/pyg/ganesha/inc.php on line 62

Warning: fclose(): supplied argument is not a valid stream resource in /home/keonox/www/pyg/ganesha/inc.php on line 63
Patch ProtegeDocs

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é.

Démonstration

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