Authentification par htaccess qui "boucle" n fois si n fichiers protégés

Discussion dans 'Développement d'un site Web ou d'une appli mobile' créé par ecocentric, 19 Novembre 2010.

Tags:
  1. ecocentric
    ecocentric WRInaute accro
    Inscrit:
    10 Février 2004
    Messages:
    2 653
    J'aime reçus:
    0
    Bonjour,

    Certains visiteurs d'un de mes sites ont un problème d'accès à des galeries photos. Je pense finalement avoir réussi à reproduire le problème avec Chromium sous Ubuntu, le problème ne se produisant chez moi ni avec Konqui ou FF sous Ubuntu LL ni avec IE sous XP.

    En pratique, le htaccess protège un sous répertoire, dans lequel se trouvent deux sous-répertoires comportant des fichiers JPG (des vignettes et des photos plus grandes). Sur mon Chromium, la fenêtre d'authentification apparaît à chaque affichage d'une photo dans la page HTML d'accès à la galerie de photos (= la page avec les n vignettes)! La fenêtre d'authentification apparaît donc en boucle o_O! Si je fais "Annuler", certaines photos restent grisées. Il "suffit" alors de faire F5, la page est rafraichie et l'ensemble des photos apparaît correctement (car l'authentification a été correctement faite initialement).

    Quelqu'un voit-il comment sortir de cette situation? Ce que je veux = une seule authentification.

    Merci,
    Cordialement,
     
  2. ap34df
    ap34df WRInaute occasionnel
    Inscrit:
    7 Septembre 2010
    Messages:
    413
    J'aime reçus:
    0
    Serait-ce un problème de linking internet au fichier qui affiche les vignette ?

    Exemple :
    /toto (protégé)
    ---/img
    ---/vignette

    J'appel /toto/toto.html qui est protégé, on me demande une authentification.
    Ce même fichier affiche des images provenant de /vignette. Dés lors, il me demande une authentification pour chaque passage vers ces fichiers.

    As tu mis les vignette en lien relatif ?

    Si oui je ne vois que la solution de mettre fichier, image et vignette dans le même répertoire.
     
  3. ecocentric
    ecocentric WRInaute accro
    Inscrit:
    10 Février 2004
    Messages:
    2 653
    J'aime reçus:
    0
  4. ecocentric
    ecocentric WRInaute accro
    Inscrit:
    10 Février 2004
    Messages:
    2 653
    J'aime reçus:
    0
    Explication:

    "La page HTML se charge sans authentification, et le browser tente d'afficher un grand nombre de photos en parallèle. Il demande alors le username/mot de passe pour chaque photo. Les browsers qui chargent les photos une par une n'ont pas de problème."
     
  5. ap34df
    ap34df WRInaute occasionnel
    Inscrit:
    7 Septembre 2010
    Messages:
    413
    J'aime reçus:
    0
    J'ai aucune demande d'auth...
     
  6. ecocentric
    ecocentric WRInaute accro
    Inscrit:
    10 Février 2004
    Messages:
    2 653
    J'aime reçus:
    0
    @Ehplod: l'URL donnée au dessus correspond à un album public (donc pas d'authentification). La structure des albums privés est par contre similaire.
     
  7. NxtGen
    NxtGen WRInaute impliqué
    Inscrit:
    24 Octobre 2006
    Messages:
    563
    J'aime reçus:
    0
    Ton problème semble logique dans le sens ou comme toutes les photos sont demandées avant que l'authentification ait pu être effectuée, alors il te demande de t'identifier pour chacune d'elle, la première photo protégée ne mettant pas le site en "pause" le temps que le visiteur rentre ses identifiants.

    Pour la solution, il faudrait que tu puisses faire en sorte de vérifier si le visiteur est loggué avant de charger la page avec les photos, le soucis étant que je ne suis pas sur que l'on puisse facilement interagir entre les sessions gérées via .htaccess et celle en php.

    Je pensais par exemple que tu pourrais vérifier l'existence d'un cookie, mais je n'ai pas l'impression que l'identification via .htaccess en créé un (ou alors en tout cas il n'apparait pas dans les cookies de firefox).

    Tu peux essayer de changer légèrement ta méthode d'identification, à savoir conserver simplement le .htpasswd et gérer le reste en php :
    - Si le dossier "/photos_privées/" contient un .htpassword, tu vérifies la présence de la variable de session "photos_privées"
    - S'il n'existe pas tu affiches un formulaire d'identification qui pour autoriser ou non l'accès en se basant sur les identifiants présents dans le .htpasswd déjà en place avec un code dans ce genre :

    Code:
    // Par défaut, un répertoire est considéré comme publique
    $show = true;
    
    // Répertoire à afficher
    $dir = 'photos_prives';
    
    // Chemin du .htpasswd
    $file = $dir.'/.htpasswd';
    
    // Vérifie s'il existe un .htpasswd
    if ( file_exists($file) ) {
    	
    	// Si oui, on passe la variable show a false tant que l'identification n'est pas faite
    	$show = false;
    	
    	// Si la session pour le répertoire concernée n'existe pas, on parse le fichier .htpasswd
    	if ( !$_SESSION[$dir] ) {
    		foreach ( file($file) as $line ) {
    		
    			// On découpe chaque ligne avec le séparateur ":"
    			$identifiants = explode(':', $line, 2);
    			
    			// On vérifie que le login et le mot de passe correspond à une ligne
    			if ( $_POST['login'] == $identifiants[0] && $_POST['password'] == crypt($identifiants[1]) ) {
    				
    				// Si le login et le mot de passe sont correctes, alors on créé la session et on passe la variable show à true
    				$_SESSION[$dir] = true;
    				$show = true;
    				
    				// On arrete de chercher dans le fichier .htpasswd
    				break;
    				}
    			}
    		}
    	
    	// Si la session existe déjà, alors on passe la variable show à true
    	else $show == true
    	}
    
    // Affichage des photos autorisé
    if ( $show == true ) {
    	// affichage des photos
    	}
    
    // Affichage non autorisé (pas de session ou mauvais identifiants)
    else {
    	// affichage du formulaire d'identification
    	} 
    Avec ça tu devrais pouvoir facilement adapter l'architecture que tu utilises pour permettre une identification plus simple :)
     
Chargement...
Similar Threads - Authentification htaccess boucle Forum Date
Htaccess : mettre une authentification + HTTPS URL Rewriting et .htaccess 26 Août 2016
Authentification htaccess et cookie Développement d'un site Web ou d'une appli mobile 7 Juin 2012
Forcer en ssl & Authentification avec htaccess Administration d'un site Web 10 Août 2007
Comment créer un fichier SPF (authentification emails) ? Noms de domaine et référencement 14 Mars 2022
Authentification forte : problème de paiement ? e-commerce 7 Octobre 2021
Code d'authentification d'un NDD Noms de domaine et référencement 28 Novembre 2018
Code d'authentification NDD Noms de domaine et référencement 9 Juillet 2018
Socyalize.com - Outil d'authentification sociale pour webmaster Demandes d'avis et de conseils sur vos sites 25 Octobre 2016
User authentification / session timeout? Développement d'un site Web ou d'une appli mobile 29 Mai 2013
Apache - Problème authentification dossier hors DocumentRoot Administration d'un site Web 26 Mai 2011
qmail : smtp avec authentification Administration d'un site Web 9 Mai 2011
Authentification a joomla avec une adresse email Développement d'un site Web ou d'une appli mobile 4 Octobre 2010
authentification questions ? Développement d'un site Web ou d'une appli mobile 20 Avril 2010
Sécuriser un Cookie d'authentification Développement d'un site Web ou d'une appli mobile 7 Février 2010
processus d'authentification de google Administration d'un site Web 22 Novembre 2008
"Erreur d'authentification 401" alors que tout est Crawl et indexation Google, sitemaps 4 Septembre 2008
2 fichiers d'authentification Google sur un seul site Google : l'entreprise, les sites web, les services 18 Juillet 2007
Pb d'authentification sur OVH manager avec FF Administration d'un site Web 18 Juillet 2007
Recherche forum sans module d'authentification Développement d'un site Web ou d'une appli mobile 19 Juin 2007
authentification Invision + authentification perso Administration d'un site Web 29 Mai 2007