8792 sujets

Développement web côté serveur, CMS

Bonjour à tous,

Je viens vers vous pour un gros problème HTACCESS.
J'ai beau chercher sur les sites spécialisés, sur les générateurs, sur les tutos.. personne ne peut m'aider comme vous.

Voici à peu-près la structure de mon site (simplifiée pour vous faciliter la tache) :

admin/
admin/articles/
admin/articles/images
index.php

Je veux construire un HTACCESS permettant de protéger le dossier admin/ (et donc les dossiers à l'intérieur) sauf que, sur ma page index, je vais chercher des images qui sont dans admin/articles/images.
Il faudrait donc que j'autorise cette page index.php à aller chercher les images malgré la protection.

Aussi, j'aimerais que le quidam ne puisse aller zieuter directement dans le fichier admin/articles/images et voir la liste des images.

Je vous remercie d'avance. Je suis au bord de la crise de nerfs Smiley biggol

Sébastien
Modifié par proki (25 May 2007 - 15:15)
Je ne garantis pas que ça va fonctionner, mais essayons toujours...

Dans /admin/.htaccess, tu mets :
deny from all

Dans /admin/images/.htaccess, tu mets :
allow from all

Et dans /admin/images/index.php, tu mets quelque chose comme :
<?php header("Location:/"); ?>
La redirection silencieuse vaut mieux qu'un message du genre dehors les pirates, à mon avis.
Salut Quentin,

Merci pour ta gentille réponse.
J'ai testé, et ça semble fonctionner.

---------------------------------------
Pour être bien clair :

admin/
1 HTACCESS avec deny from all (à convertir en demande de pass et log)

admin/articles/
rien de spécial

admin/articles/images
1 HTACCESS avec allow from all

----------------------------------------

Quelques petits points pour te déranger encore un peu :

dans /admin/.htaccess, des personnes doivent quand même y avoir accès, justement en mettant le login/pass du htaccess.
Avec le deny all, puis-je mettre quand même les usuels

AuthUserFile /home.3/n/a/t/naturapi/www/.htpasswd
AuthType Basic
& Co..
Je viens de faire un test et ça ne semble pas marcher.

VOici le htaccess de /admin/

AuthUserFile /home.3/n/a/t/naturapi/www/.htpasswd
AuthGroupFile /dev/null
AuthName "Acces Restreint"
AuthType Basic
<Limit GET POST>
require valid-user
</Limit>

deny from all


Ce qui est étonnant, c'est que quand je vais dans admin/articles/images/, ca me sort un htaccess avec demande de mdp et login.
Le fait de ne pas avoir que deny from all semble embourber le tout.

Voili Smiley smile

Un gros merci d'avance.
Modifié par proki (22 May 2007 - 18:40)
Bonjour.

Je ne suis pas un pro en .htaccess mais pourquoi mettre "deny from all" quand tu demandes avant un utilisateur valide ? C'est contradictoire.
COucou,

Justement, j'aimerais que ce soit un deny from all, sauf pour quelques utilisateurs (qui se sont logués).
Mais je ne sais comment faire Smiley confused

:)
C'est justement ce que je dis. À mon avis "require valid-user" se suffit à lui même pour ce que tu souhaites.
Coucou,

Alors je viens d'essayer de remplacer le htaccess de /admin/ qui contenant un deny from all par un htaccess contenant :

AuthUserFile chamin/.htpasswd
AuthGroupFile /dev/null
AuthName "Accès sécurisé au site web"
AuthType Basic
<LIMIT GET POST>
Require valid-user
</LIMIT>


Le problème maintenant, en ouvrant la page principal du site, ça me demande un user/pass.

Smiley decu
Modifié par proki (23 May 2007 - 17:22)
Et en mettant ceci dans /admin/articles/images/.htaccess, ça donne quoi ?

AuthUserFile /dev/null
allow from all
order allow, deny

IL faudra peut-être changer l'ordre ou la syntaxe des commandes, je ne suis pas non plus un expert en .htaccess.

Etant donné qu'un .htaccess situé dans un sous-dossier a toujours la priorité sur celui se trouvant dans un dossier parent, l'allow from all du sous-dossier annule le deny from all du parent.
Par contre, allow from all n'est pas l'exact contraire de la définition d'un accès sécurisé. Tu pourrais très bien avoir un accès sécurisé et, en plus, autoriser certaines IP ou certaind domaines sans authentification par exemple. De même, du pourrais systématiquement refuser certaines IP ou certains domaines même avec une identification.

L'objectif qu'il faut donc chercher à atteindre, c'est celui d'annuler la définition d'un fichier d'authentification. Je ne sais pas si mon idée de spécifier un chemin d'accès nul est la bonne solution, mais pour moi ça me paraît cohérent. L'erreur qu'il pourrait y avoir à mon raisonnement, c'est si apache est un peu con et cherche à ouvrir le fichier sur /dev/null, ce qui est bien sûr voué à l'échec et qui, par conséquent, afficherait une jolie page d'erreur apache 500 ou 501...
Coucou Quentin,

Quelle belle explication Smiley smile
Que dois-je donc mettre dans le htaccess de /admin/ pour demander une authen avec login et mdp ?
Coucou,

L'impatience n'est pas mon fort mais mon problème a surement une bête réponse.

Merci d'avance Smiley smile
Salut,
je vais faire un réponse bête mais pas grave Smiley smile

pour ton admin il faut effectivement faire un système d'authentification et pas deny from all si tu veux que certains utilisateurs y accèdent (ce qui reste le propre d'une admin ma foi Smiley smile ) donc Require valid-user obligatoire.

Donc, pour ne pas te prendre la tête avec ton dossier d'images pourquoi ne pas le mettre dans la zone non-protégée par htaccess avec dedans un fichier index.php vide ou contenant un header location vers l'accueil de ton site, comme ça, un petit malin qui essaye d'aller faire un tour dans le dossier est tout simplement revoyé à ses belles études...

Have swing
Coucou,

En fait, un problème de fonctions php telles que 'unlink..' m'oblige à avoir le dossier images dans le même dossier (ou dossier enfant) de mon fichier d'opération.

Ce HTACCESS me pose bien des problèmes Smiley decu

Quelle structure dois-je donc adopter pour le ht de /admin/ (mise à part le Require valid-user) ?

Merci pour ces réponses Smiley smile
Salut,
ben le problème c'est qu'il n'y en a pas d'autres si tu veux un accès restreint par htaccess, le reste c'est ou forbidden ou tout le monde passe.

En revanche, autre solution, tu peux aussi gérer l'accès à l'admin par authentification php avec tes users dans une table. A la limite, c'est même plus élégant.

Dernière chose, unlink te permet complètement de bosser dans un dossier au-dessus de sa page d'appel, il n'y a aucune restriction à l'usage de ../ dans php !! manquerait plus que ça, chaque fois que je fais une photothèque ou autre avec une admin je ne serais pas dans la m.... sinon Smiley cligne

Have swing
C'est effectivement la seule solution qu'il me reste.
Merci pour ce conseil.

Je clos ce post qui dans le fond est résolu.

Merci à tous Smiley smile
a écrit :

Dernière chose, unlink te permet complètement de bosser dans un dossier au-dessus de sa page d'appel, il n'y a aucune restriction à l'usage de ../ dans
php !! manquerait plus que ça, chaque fois que je fais une photothèque ou autre avec une admin je ne serais pas dans la m.... sinon

Tout dépend de la conf d'apache, on peut restreindre cet accès avec des options comme le safe mode par exemple