Aller au contenu

.htpassword facultatif en local ?


Sujets conseillés

Salut à tous !

Je voudrais faire en sorte que mon fichier .htaccess limitant l'accès à certains répertoires ne soit pas fonctionnel en local.

En gros, je voudrais que pour l'accès local (localhost ou 127.0.0.1), il ne demande pas de mot de passe, mais qu'il en demande un une fois uploadé sur le serveur.

Il comporterait bien sûr un chemin vers le fichier .htpassword valable uniquement sur le serveur distant.

Est-ce possible, et dans ce cas, comment le faire ?

Lien vers le commentaire
Partager sur d’autres sites

Salut,

Si j'ai bien compris, tu ne veux pas que le .htaccess soit actif sur ton serveur de dev, c'est ca ?

Alors 2 solutions :

La solution bourrin : sur ton serveur de dev, tu modifies la config d'apache pour ne plus prendre en compte le .htaccess

Par exemple, je ferai

AccessFileName .localaccess

ce qui te permet de garder la possibilite d'utiliser quant meme des directives locales si le besoins s'en fait sentir (genre pour ajouter des actions, des footer, et autres joyeusetes que j'utilise enormement).

La solution plus "reflechie" est d'autorise systematiquement '127.0.0.1' (je ne me souviens plus de la directive mais c'est tout simple a faire, voir la doc).

Perso, je prendrais ... la solution bourrin. Car la seconde creer une fail de securite si qq'un arrive a ouvrir un tunnel depuis ton serveur. Heu ... sauf que je mes serveurs de devs sont a l'identique de ma prod donc inclus aussi les protections :smartass:

Lien vers le commentaire
Partager sur d’autres sites

J'avais tenté le "allow from 127.0.0.1", mais ça n'avait pas marché, je ne sais pas où le mettre.

Sinon, pas de souci de faille de sécurité, le serveur de dev est mon PC perso.

Edit : je veux quand même que les fichiers htaccess soient lisibles en local, ne serait-ce que pour les réécritures d'url

Lien vers le commentaire
Partager sur d’autres sites

J'ai failli dire que ce n'était pas possible avec les directives Apache standard, mais j'ai trouvé une solution...

Encadre tes directives d'authentification (ou au minimum le require valid-user) dans tes .htaccess par <IfDefine pas_dauth> et </IfDefine>. Ensuite lance ton serveur local en ajoutant un -Dpas_dauth (suivant comment tu le lances la méthode ne sera pas la même). Tu peux utiliser n'importe quelle autre mot à la place de "pas_dauth" évidemment.

http://httpd.apache.org/docs/1.3/mod/core.html#ifdefine

Note cependant que si ton code utilise ensuite le nom de l'utilisateur connecté ($_SERVER['REMOTE_USER']) ça ne marchera évidemment pas...

Jacques.

Lien vers le commentaire
Partager sur d’autres sites

Tu peux mettre les lignes qui protègent l'accès en commentaire dans ton .htaccess local en les faisant débuter par #.

Le tout est de ne pas oublier de supprimer les # quand tu mets le site en ligne. ;)

Jean-Luc

Lien vers le commentaire
Partager sur d’autres sites

J'avais tenté le "allow from 127.0.0.1", mais ça n'avait pas marché, je ne sais pas où le mettre.

Il faut jouer dans l'ordre des Deny / Allow pour que ca joue. Je n'ai pas le temps de faire des essaies, mais de memoire, les Deny ont priorite sur les allows par defaut donc les protections ont priorite sur ton autorisation locale. Il faut donc donner priorite au Allow sur le Deny.

Sinon, pas de souci de faille de sécurité, le serveur de dev est mon PC perso.

Le probleme n'est pas sur ton serveur de dev mais sur ta prod si tu copies les .htaccess tel quel : si le gas arrive a faire du Spoofing sur les IP, ou s'il arrive a ouvrir un tunel depuis ton serveur, il passera a travers tes protection.

L'idee donnee par jcaron me semble pas mal.

Bye

Lolo

Lien vers le commentaire
Partager sur d’autres sites

Il faut jouer dans l'ordre des Deny / Allow pour que ca joue. Je n'ai pas le temps de faire des essaies, mais de memoire, les Deny ont priorite sur les allows par defaut donc les protections ont priorite sur ton autorisation locale. Il faut donc donner priorite au Allow sur le Deny.

Le problème c'est qu'il s'agit de deux mécanismes différents: deny/allow sur les adresses IP, et require pour l'authentification. Il n'existe pas à ma connaissance de mécanisme qui permette de lier les deux. D'où ma méthode :-)

Ceci dit, vu comme il est facilement possible de sauvegarder l'auth dans les browsers, et comme l'auth vit aussi longtemps que la session, ça ne me paraît pas indispensable tout ça :-)

Jacques.

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