Créer un espace membre protégé par .htaccess


Meeuuuhhh
WRInaute passionné
WRInaute passionné
 
Messages: 2046
Inscription: 8 Jan 2007

Créer un espace membre protégé par .htaccess

Message le Jeu Déc 20, 2007 14:05

Bonjour,

Voilà :

Je sais protéger un répertoire par htaccess (c'est pas un exploit, je sais lol).
Je sais créer un espace membre avec base de donnée etc...

Maintenant, pour la première fois, je veux créer un espace membre protégé par .htaccess.

Et là je ne vois pas qu'elles sont les étapes :

Par exemple, les gens s'inscrivent avec quelles informations (email, passe... ?)
J'enregistre les informations d'inscription dans un fichier ou dans une BD ?
Comment je récupère les informations de l'authentification apache ?

Etc...

Bien sur, chaque espace membre est personnalisé, donc les mots de passe doivent l'être aussi.


Merci de me guider dans ma démarche. :D


dorian53
WRInaute passionné
WRInaute passionné
 
Messages: 2215
Inscription: 10 Avr 2005

Message le Jeu Déc 20, 2007 14:46

Salut,

Je pense qu'il suffit juste de gérer les couples login/pass dans ton fichier htpasswd.

Le .htaccess sera commun à tous les utilisateurs et contiendra
(Où plutôt httpd.conf si tu travailles sur un répertoire à protéger)

Code: Tout sélectionner
AuthUserFile /repertoire/de/votre/fichier/.FichierDeMotDePasse
AuthGroupFile /dev/null
AuthName "Accès sécurisé au site CCM"
AuthType Basic


...

Code: Tout sélectionner
<LIMIT GET POST> Require valid-user </LIMIT>


J'en sais pas plus je n'en fais qu'une utilisation basique.


http://www.commentcamarche.net/apache/apacht.php3

maddanny
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 282
Inscription: 22 Mar 2005

Message le Jeu Déc 20, 2007 14:56

dorian53 a écrit:
Code: Tout sélectionner
<LIMIT GET POST> Require valid-user </LIMIT>



Il NE FAUT PAS utiliser la balise <LIMIT..>

Un simple "Require valid-user" suffit.

MADdanny

FloBaoti
WRInaute impliqué
WRInaute impliqué
 
Messages: 755
Inscription: 30 Avr 2006

Message le Jeu Déc 20, 2007 15:05

Si tu veux continuer avec une gestion en base de donnée, tu peux aussi gérer l'authentification HTTP par PHP (demander une authentification, récupérer le login de l'utilisateur connecté...).

Sinon il doit aussi exister un mod pour Apache2 qui gère l'authentification d'utilisateurs via une base de donnée.

Sinon à la mano dans un .htpasswd...


dorian53
WRInaute passionné
WRInaute passionné
 
Messages: 2215
Inscription: 10 Avr 2005

Message le Jeu Déc 20, 2007 15:06

maddanny a écrit:
dorian53 a écrit:
Code: Tout sélectionner
<LIMIT GET POST> Require valid-user </LIMIT>



Il NE FAUT PAS utiliser la balise <LIMIT..>

Un simple "Require valid-user" suffit.

MADdanny



Exact, merci pour l'info.

http://httpd.apache.org/docs/2.0/mod/core.html#limit


Access controls are normally effective for all access methods, and this is the usual desired behavior. In the general case, access control directives should not be placed within a <Limit> section.

jcaron
WRInaute accro
WRInaute accro
 
Messages: 2685
Inscription: 13 Fév 2004

Re: Créer un espace membre protégé par .htaccess

Message le Jeu Déc 20, 2007 15:11

Meeuuuhhh a écrit:Maintenant, pour la première fois, je veux créer un espace membre protégé par .htaccess.

Et là je ne vois pas qu'elles sont les étapes :

Par exemple, les gens s'inscrivent avec quelles informations (email, passe... ?)
J'enregistre les informations d'inscription dans un fichier ou dans une BD ?
Comment je récupère les informations de l'authentification apache ?


Trois solutions:
- tu stockes dans ta base de données, et tu utilises un module Apache qui va interroger cette base pour authentifier les utilisateurs. Ce n'est évidemment possible que si tu as un dédié.
- tu stockes dans ta base de données, et tu génères un fichier .htpasswd à partir de cette base
- tu stockes uniquement et directement dans un fichier .htpasswd

La dernière option est la plus simple, mais ça complique un peu les opérations genre modifier un mot de passe (ou un login), supprimer un login, etc.
La première option est la meilleure parce que c'est la plus souple mais c'est aussi la plus rapide si tu as beaucoup d'utilisateurs (si ta table est correctement indexée bien sûr).

Jacques.


Meeuuuhhh
WRInaute passionné
WRInaute passionné
 
Messages: 2046
Inscription: 8 Jan 2007

Re: Créer un espace membre protégé par .htaccess

Message le Jeu Déc 20, 2007 19:50

Merci pour toutes vos réponses !

Je reviens sur ces deux là en particulier
dorian53 a écrit:Salut,

Je pense qu'il suffit juste de gérer les couples login/pass dans ton fichier htpasswd.

Le .htaccess sera commun à tous les utilisateurs et contiendra
(Où plutôt httpd.conf si tu travailles sur un répertoire à protéger)

Code: Tout sélectionner
AuthUserFile /repertoire/de/votre/fichier/.FichierDeMotDePasse
AuthGroupFile /dev/null
AuthName "Accès sécurisé au site CCM"
AuthType Basic


...


Code: Tout sélectionner
<LIMIT GET POST> Require valid-user </LIMIT>


J'en sais pas plus je n'en fais qu'une utilisation basique.


http://www.commentcamarche.net/apache/apacht.php3


Ca ça ne va pas, car l'espace membre doit être personnalisé. Donc ce sont des identifiants différents pour chacun.



jcaron a écrit:
Meeuuuhhh a écrit:Maintenant, pour la première fois, je veux créer un espace membre protégé par .htaccess.

Et là je ne vois pas qu'elles sont les étapes :

Par exemple, les gens s'inscrivent avec quelles informations (email, passe... ?)
J'enregistre les informations d'inscription dans un fichier ou dans une BD ?
Comment je récupère les informations de l'authentification apache ?


Trois solutions:
- tu stockes dans ta base de données, et tu utilises un module Apache qui va interroger cette base pour authentifier les utilisateurs. Ce n'est évidemment possible que si tu as un dédié.
- tu stockes dans ta base de données, et tu génères un fichier .htpasswd à partir de cette base
- tu stockes uniquement et directement dans un fichier .htpasswd

La dernière option est la plus simple, mais ça complique un peu les opérations genre modifier un mot de passe (ou un login), supprimer un login, etc.
La première option est la meilleure parce que c'est la plus souple mais c'est aussi la plus rapide si tu as beaucoup d'utilisateurs (si ta table est correctement indexée bien sûr).

Jacques.


Ok, ça ça a l'air d'être bon. Mais je vois pas comment faire.
Le gars s'inscrit, choisi un nom d'utilisateur, un mot de passe etc... j'expédie tout dans la base de donnée. Ok.
Là, je suis obligé de générer un fichier .htpassword, car l'authentification apache ne fonctionne pas depuis la base de donnée, c'est ça ?
Alors là, je ne sais pas comment générer le .htpassword depuis la base de donnée.
Je ne vois pas du tout comment faire pour ça.

forummp3
WRInaute passionné
WRInaute passionné
 
Messages: 1982
Inscription: 8 Fév 2004

Message le Jeu Déc 20, 2007 20:00

c'est quoi l'interet du htaccess pour une zone membre?


Meeuuuhhh
WRInaute passionné
WRInaute passionné
 
Messages: 2046
Inscription: 8 Jan 2007

Message le Jeu Déc 20, 2007 20:20

C'est parce que c'est comme ça, j'ai pas trop envie de philosopher, merci ;-)

jcaron
WRInaute accro
WRInaute accro
 
Messages: 2685
Inscription: 13 Fév 2004

Re: Créer un espace membre protégé par .htaccess

Message le Jeu Déc 20, 2007 22:55

Meeuuuhhh a écrit:
dorian53 a écrit:Je pense qu'il suffit juste de gérer les couples login/pass dans ton fichier htpasswd.

Le .htaccess sera commun à tous les utilisateurs et contiendra
(Où plutôt httpd.conf si tu travailles sur un répertoire à protéger)

Code: Tout sélectionner
AuthUserFile /repertoire/de/votre/fichier/.FichierDeMotDePasse
AuthGroupFile /dev/null
AuthName "Accès sécurisé au site CCM"
AuthType Basic

Code: Tout sélectionner
<LIMIT GET POST> Require valid-user </LIMIT>



Ca ça ne va pas, car l'espace membre doit être personnalisé. Donc ce sont des identifiants différents pour chacun.


Ben ça fait exactement ça: il te suffit de mettre une ligne pour chaque utilisateur dans ton .htpasswd.

Meeuuuhhh a écrit:
jcaron a écrit:- tu stockes dans ta base de données, et tu génères un fichier .htpasswd à partir de cette base


Ok, ça ça a l'air d'être bon. Mais je vois pas comment faire.
Le gars s'inscrit, choisi un nom d'utilisateur, un mot de passe etc... j'expédie tout dans la base de donnée. Ok.
Là, je suis obligé de générer un fichier .htpassword, car l'authentification apache ne fonctionne pas depuis la base de donnée, c'est ça ?

Pas par défaut, mais il y a des modules qui permettent de le faire (mod_auth_quelquechose, probably mod_auth_mysql pour mysql, flemme de vérifier).
Meeuuuhhh a écrit:Alors là, je ne sais pas comment générer le .htpassword depuis la base de donnée.
Je ne vois pas du tout comment faire pour ça.


Ouvrir fichier
select login,pass de latable where login_valide
pour chaque ligne mettre une ligne dans fichier
fermer fichier
mettre fichier à la place du .htpasswd

Trivial, quoi.

Jacques.


Meeuuuhhh
WRInaute passionné
WRInaute passionné
 
Messages: 2046
Inscription: 8 Jan 2007

Message le Ven Déc 21, 2007 1:58

Ok, je te remercie de ta réponse Jacques.

Pour tout te dire, je ne vois pas ce que c'est que ces "modules". Ca se trouve où ? Ca ressemble à quoi ? Ca s'attrape comment ? On en fait quoi ?
J'ai appris sur le tas, alors question vocabulaire, je suis un peu faiblard.

Je précise à tout hasard que le site sera sur un mutualisé OVH, ça peut avoir de l'importance.

Aussi, quand à la fin tu dis "pour chaque ligne mettre une ligne dans fichier ", c'est à cette étape que le module est censé intervenir, c'est ça ?

forummp3
WRInaute passionné
WRInaute passionné
 
Messages: 1982
Inscription: 8 Fév 2004

Message le Ven Déc 21, 2007 9:44

Meeuuuhhh a écrit:C'est parce que c'est comme ça, j'ai pas trop envie de philosopher, merci ;-)
c'est pas une question de philosophie, c'est juste pour savoir si on peut te proposer un autre systeme ...
Bon ben debrouille toi seul si tu veux pas repondre ...


Meeuuuhhh
WRInaute passionné
WRInaute passionné
 
Messages: 2046
Inscription: 8 Jan 2007

Message le Ven Déc 21, 2007 14:12

forummp3 a écrit:
Meeuuuhhh a écrit:C'est parce que c'est comme ça, j'ai pas trop envie de philosopher, merci ;-)
c'est pas une question de philosophie, c'est juste pour savoir si on peut te proposer un autre systeme ...
Bon ben debrouille toi seul si tu veux pas repondre ...


Non c'est gentil, mais j'ai déjà un autre système sous la main, l'espace membre classique en php, mais là j'ai envie d'essayer avec une authentification apache.

forummp3
WRInaute passionné
WRInaute passionné
 
Messages: 1982
Inscription: 8 Fév 2004

Message le Ven Déc 21, 2007 14:39

Meeuuuhhh a écrit:
forummp3 a écrit:
Meeuuuhhh a écrit:C'est parce que c'est comme ça, j'ai pas trop envie de philosopher, merci ;-)
c'est pas une question de philosophie, c'est juste pour savoir si on peut te proposer un autre systeme ...
Bon ben debrouille toi seul si tu veux pas repondre ...


Non c'est gentil, mais j'ai déjà un autre système sous la main, l'espace membre classique en php, mais là j'ai envie d'essayer avec une authentification apache.
ben justement, tu n'as pas besoin d'un htacess pour une authentification apache.

tu peux utiliser un code de ce genre:

Code: Tout sélectionner
<?php
  if(!isset($PHP_AUTH_USER)) {
    Header("WWW-Authenticate: Basic entrer="Entrer dans la page" ");
    Header("HTTP/1.0 401 Unauthorized");
    echo "Vous avez appuyé sur le bouton annuler!!!\n";
    exit;
  } else {
    if ( ($PHP_AUTH_USER == "sebastien") && ( $PHP_AUTH_PW == "azerty" ))
    {
       echo "<html><body>Bienvenue sur cette page réservée aux membres.<P></body></html>";
    }
    else
    {
       echo "<html><body>Vous n'êtes pas autorisé à visionner cette page.<P></body></html>";
    }
  }
?>


Meeuuuhhh
WRInaute passionné
WRInaute passionné
 
Messages: 2046
Inscription: 8 Jan 2007

Message le Ven Déc 21, 2007 15:54

Oui ça ressemble à ce que je souhaite, j'ai dû mal m'expliquer donc.

Bon je recommence.

Le gars s'inscrit avec un formulaire d'inscription classique : nom, site internet, email, mot de passe, confirmation du mot de passe, validation de l'email en cliquant sur un lien envoyé à l'adresse indiquée, etc...

Ensuite, pour l'identification, je souhaite que ce soit une fenêtre authentification apache qui apparaissent et que le gars inscrive son courriel et son mot de passe pour avoir accès à son espace membre personnel.

Sinon, il a une erreur 401.


Donc là ton code, forummp3, c'est pour faire ça ?

Si oui, alors je ne vois pas comment appeler la fenêtre d'authentification apache.

Ensuite, je ne vois pas comment récupérer les variables entrées dans la fenêtre.

Après, si les variables correspondent aux informations dans la BD, j'initialise une variable $PHP_AUTH_USER dont je teste la présence en haut de chaque page comme sur ton code, c'est ça ?

Créer un espace membre protégé par .htaccess

Si vous avez aimé cette discussion, partagez-la sur vos réseaux sociaux préférés :

Lectures recommandées sur ce thème :



Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité