Aller au contenu

.htaccess : protection d'un répertoire par referer


Sujets conseillés

Mon but : créer un répertoire dans lequel je puisse mettre toutes sortes de choses (page html, images, pdf ...etc). Mais je veux que ce répertoire ne soit accessible que depuis un lien posté sur un site, ou alors en navigation interne entre les pages qui sont dans le répertoire.

Pour tester, j'ai fais un .htaccess qui filtre par REFERER (je fait un test en live avec le site du HUB) :

# Referers Filter (Allowed Sites)
SetEnvIfNoCase Referer "^http://.*/tmp/test/.*$" allowed
SetEnvIfNoCase Referer "^http://.*webmaster-hub.*$" allowed

Order Allow,Deny
Allow from env=allowed

Lien vers l'index :

http://www.aftermoon.net/tmp/test/index.html

Et à priori ça marche aussi avec tinyurl, qui a l'air de préserver le referer :

http://tinyurl.com/ko3vkw

J'ai aussi ajouté ça dans mon robot.txt pour éviter le référencement de mon contenu inaccessible :

Disallow: /tmp/

Bien sur, vous ne pourrez accéder à la page depuis vos favoris, il faudra repasser par la page ou je donne le lien, c'est voulu.

A priori ça à l'air de marcher, mais est ce qu'il y en a qui ont des remarques ou des idées de cas dans lesquels cela risquerait de déconner (accessible à ceux qui ne devraient pas, ou inaccessible à ceux qui devraient.

Modifié par Pat AfterMoon
Lien vers le commentaire
Partager sur d’autres sites

Je pense qu'il a été dit mille fois que ce n'est pas une bonne idée: le referer est souvent masqué (par des outils de "protection de la vie privée", qui sont souvent intégrés par défaut dans des anti-virus et autres firewalls), donc il y a des gens qui devraient avoir accès à ces fichiers pour qui ça ne fonctionnera pas. Et évidemment ce n'est pas absolu puisqu'il est parfaitement falsifiable avec les bons outils.

A part ça, tes regexp sont beaucoup trop "larges": une page http://sitealacon.com/webmaster-hub.html passera.

Si tu veux limiter les gens qui ont accès à ces fichiers, soit tu mets en place une authentification explicite (à base de .htaccess, de cookies...), soit tu mets un cookie (avec éventuellement une durée de vie limitée) qui est positionné par la page d'accès et vérifié par la page accédée, soit tu utilises des URLs "dynamiques" vérifiées elles-aussi (par exemple gnagna.com/fichier?t=$time&k=$clef où $clef est un md5 d'une clef secrète et de $time, et où la destination vérifie que $time est "récent"). Il y a probablement encore beaucoup d'autres solutions, le choix de la solution exacte dépend de ce que tu cherches à faire exactement...

Jacques.

Lien vers le commentaire
Partager sur d’autres sites

Salut

inaccessible à ceux qui devraient.
Par le plus grand des hasards, je viens précisément de tomber dans ce cas de figure.

J'ai une manière de naviguer un peu spéciale: quand je veux ouvrir une page dans un nouvel onglet, je reste cliqué sur le lien, et je le "drag & drop" (du verbe "drag & dropper", du 1er groupe) vers la barre d'onglets.

Ce que j'ai fait depuis ce topic vers ton site.

Et bien, sache une chose: en "drag & droppant" un lien, le referant n'est visiblement pas envoyé, je suis donc tombé sur une 403 alors que j'étais censé tester que tout se passe bien :D

De manière plus générale, il est très facile de modifier un référant. Donc globalement, une protection par référant n'est pas ce qui fait de plus sécurisé.

Lien vers le commentaire
Partager sur d’autres sites

En fin de compte mon problème est plus une histoire de référencement. Je vais commencer à travailler sur un nouveau projet, dont je veux partager l'avancement avec quelques forums techniques (du style du HUB). Je ne veux pas que ça parasite mon projet actuel (en signature).

En fait ce que je vais partager n'est pas confidentiel, puisque de toute façon je vais poster dans des forums publics. Mais comme la thématique est commune, cela m'embêterai que mon projet en cours de développement passe devant celui qui tourne déjà (au niveau referencement).

De toute façon l'histoire du REFERER est réglée, je vais discuter du projet dans un google.groups, et comme pas mal d'utilisateurs utilisent le mail plutôt que le web...

Je vais me contenter d'utiliser un disallow dans le robot.txt, tinyurl pour éviter les liens trop voyants, et un nom du style MyProject2009 plutôt que TrucMuche2.

Lien vers le commentaire
Partager sur d’autres sites

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...