Accès /ecrire et .htaccess d'authentification #2294

Closed
opened 12 years ago by magegahell · 6 comments

La présence d'un .htaccess d’authentification (protection de répertoire par htaccess/htpassword, pas le htaccess.txt de SPIP) pose des problèmes de connexion au /ecrire (et potentiellement à la connexion au site même pour un visiteur).
Le login/password demandé par le htaccess est considéré comme une tentative de connexion, ce qui génére le message d'erreur suivant :
"Erreur de connexion - Vous êtes identifié sous le login login_entrer_pour_htaccess, mais celui-ci n'existe pas/plus dans la base. Essayez de vous reconnecter, après avoir éventuellement quitté puis redémarré votre navigateur."
Ceci est également présent à la déconnexion et à la validation dans certains formulaires AJAX du backoffice.
Pire : s'il y a un auteur avec le même login que l'auth apache, alors SPIP le considère comme authentifié à ecrire/ même si le mot de passe est différent pour SPIP. (remarqué par RealET sur la liste spip-zone).

La présence d'un .htaccess d’authentification (protection de répertoire par htaccess/htpassword, pas le htaccess.txt de SPIP) pose des problèmes de connexion au /ecrire (et potentiellement à la connexion au site même pour un visiteur). Le login/password demandé par le htaccess est considéré comme une tentative de connexion, ce qui génére le message d'erreur suivant : "Erreur de connexion - Vous êtes identifié sous le login login_entrer_pour_htaccess, mais celui-ci n'existe pas/plus dans la base. Essayez de vous reconnecter, après avoir éventuellement quitté puis redémarré votre navigateur." Ceci est également présent à la déconnexion et à la validation dans certains formulaires AJAX du backoffice. Pire : s'il y a un auteur avec le même login que l'auth apache, alors SPIP le considère comme authentifié à ecrire/ même si le mot de passe est différent pour SPIP. (remarqué par RealET sur la liste spip-zone).

confirmé, j'ai vu des trucs étranges aussi.

peux tu nous aider et nous donner un protocole de test précis et reproductible ( genre j'ai mis ça dans le htaccess, je me suis loggué dans ecrire puis j'ai cliqué sur déconnecter etc etc ) avec des urls quand c'est possible

confirmé, j'ai vu des trucs étranges aussi. peux tu nous aider et nous donner un protocole de test précis et reproductible ( genre j'ai mis ça dans le htaccess, je me suis loggué dans ecrire puis j'ai cliqué sur déconnecter etc etc ) avec des urls quand c'est possible

une faille de sécurité c'est beaucoup dire au fait.

Je vois aussi que tu as eu le probleme en 2.1, je l'ai constaté en spip 3 personnellement

une faille de sécurité c'est beaucoup dire au fait. Je vois aussi que tu as eu le probleme en 2.1, je l'ai constaté en spip 3 personnellement
Poster

Volontiers
Je n'ai pas d'URL, n'ayant pas de serveurs à disposition. Mais c'est reproductible en local avec WAMP/XAMP ou autre.
Methodologie :

  • Installer un SPIP 2.1.10 puis vous déconnecter.

Test n°1

  • Ajouter un fichier .htpasswd à la racine du site, contenant un couple login/password (j'ignore si cela à de l'importance de crypter le password). Exemple (avec en login "gael_chareyre" et "zeugma" en password):
gael_chareyrel:zeugma
  • Ajouter un fichier .htaccess à la racine du site, contenant :
AuthName "Page d'administration protégée"
AuthType Basic
AuthUserFile F:/wamp/www/.htpasswd
Require valid-user

En remplaçant bien sur la ligne AuthUserFile par le chemin vers le fichier .htpasswd préalablement crée.

  • Aller sur le /ecrire du site. La popup du .htaccess s'ouvre, vous demandant login et password. En validant, vous obtiendrais le message d'erreur "
    Vous êtes identifié sous le login gael_chareyre, mais celui-ci n'existe pas/plus dans la base. Essayez de vous reconnecter, après avoir éventuellement quitté puis redémarré votre navigateur." au lieu d'avoir le formulaire de login de SPIP

Test n°2

  • Suivez la procédure précédente, mais dans le .htpasswd, mettez en login le login d'un auteur SPIP ayant accès au backoffice (laissez le password différent de celui de l'auteur).
  • Allez sur le /ecrire du site. La popup du .htaccess s'ouvre, vous demandant login et password. En validant, vous avez accès au backoffice directement, sans avoir à renseigner le password de l'auteur.

Test n°3

  • Suivez la procédures du Test n°1. Connectez-vous au backoffice (en cliquant sur le lien "reconnecter" du message d'erreur).
  • Cliquez ensuite sur le bouton de déconnexion de l'interface privée : la popup d'authentification du .htaccess réapparait.
Volontiers Je n'ai pas d'URL, n'ayant pas de serveurs à disposition. Mais c'est reproductible en local avec WAMP/XAMP ou autre. Methodologie : - Installer un SPIP 2.1.10 puis vous déconnecter. *Test n°1* - Ajouter un fichier .htpasswd à la racine du site, contenant un couple login/password (j'ignore si cela à de l'importance de crypter le password). Exemple (avec en login "gael_chareyre" et "zeugma" en password): <pre> gael_chareyrel:zeugma </pre> - Ajouter un fichier .htaccess à la racine du site, contenant : <pre> AuthName "Page d'administration protégée" AuthType Basic AuthUserFile F:/wamp/www/.htpasswd Require valid-user </pre> En remplaçant bien sur la ligne AuthUserFile par le chemin vers le fichier .htpasswd préalablement crée. - Aller sur le /ecrire du site. La popup du .htaccess s'ouvre, vous demandant login et password. En validant, vous obtiendrais le message d'erreur " Vous êtes identifié sous le login gael_chareyre, mais celui-ci n'existe pas/plus dans la base. Essayez de vous reconnecter, après avoir éventuellement quitté puis redémarré votre navigateur." au lieu d'avoir le formulaire de login de SPIP *Test n°2* - Suivez la procédure précédente, mais dans le .htpasswd, mettez en login le login d'un auteur SPIP ayant accès au backoffice (laissez le password différent de celui de l'auteur). - Allez sur le /ecrire du site. La popup du .htaccess s'ouvre, vous demandant login et password. En validant, vous avez accès au backoffice directement, sans avoir à renseigner le password de l'auteur. *Test n°3* - Suivez la procédures du Test n°1. Connectez-vous au backoffice (en cliquant sur le lien "reconnecter" du message d'erreur). - Cliquez ensuite sur le bouton de déconnexion de l'interface privée : la popup d'authentification du .htaccess réapparait.
Owner

il faudrait a minima pouvoir désactiver l'auth HTTP de SPIP quand on veut s'en servir pour ce type d'usage. Je reporte en 3.1 car ce ne sera pas corrigé avant.
Version cible mise à 3.1

il faudrait a minima pouvoir désactiver l'auth HTTP de SPIP quand on veut s'en servir pour ce type d'usage. Je reporte en 3.1 car ce ne sera pas corrigé avant. **Version cible mise à 3.1**
Poster

Quelqu'un n'aurait pas un petit palliatif vite faite (même s'il faut modifier le core/surcharger des trucs) en attendant SPIP 3 ?
Je présuppose qu'il faut bidouiller dans inc/auth.php (probablement dans auth_mode(), je dirais), mais je ne connais pas assez bien le core et le système d’authentification de SPIP pour faire moi même la modif'...

Quelqu'un n'aurait pas un petit palliatif vite faite (même s'il faut modifier le core/surcharger des trucs) en attendant SPIP 3 ? Je présuppose qu'il faut bidouiller dans inc/auth.php (probablement dans auth_mode(), je dirais), mais je ne connais pas assez bien le core et le système d’authentification de SPIP pour faire moi même la modif'...
Owner

oui en fait en lisant le code je vois qu'il suffit de mettre dans mes_options.php :

$GLOBALS['ignore_auth_http'] = true;

Statut changé à Fermé

oui en fait en lisant le code je vois qu'il suffit de mettre dans `mes_options.php` : <pre>$GLOBALS['ignore_auth_http'] = true;</pre> **Statut changé à Fermé**
Sign in to join this conversation.
No Milestone
No project
No Assignees
3 Participants
Notifications
Due Date

No due date set.

Dependencies

This issue currently doesn't have any dependencies.

Loading…
There is no content yet.