Project

General

Profile

Anomalie #2294

Accès /ecrire et .htaccess d'authentification

Added by Gaël Chareyre over 7 years ago. Updated over 7 years ago.

Status:
Fermé
Priority:
Normal
Assignee:
-
Category:
sécurité
Target version:
Start date:
09/06/2011
Due date:
% Done:

0%

Resolution:
fixed
Navigateur:

Description

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

History

#1 Updated by Ben . over 7 years ago

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

#2 Updated by Ben . over 7 years ago

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

#3 Updated by Gaël Chareyre over 7 years ago

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.

#4 Updated by cedric - over 7 years ago

  • Priority changed from Haut to Normal
  • Target version changed from 2.1 to 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.

#5 Updated by Gaël Chareyre over 7 years ago

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

#6 Updated by cedric - over 7 years ago

  • Status changed from Nouveau to Fermé
  • Resolution set to fixed

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

$GLOBALS['ignore_auth_http'] = true;

Also available in: Atom PDF