Joomladay francophone 2018 à Paris 18 et 19 mai

Calcul Session ID incorrect pour la méthode d'authentification

Réduire
X
  • Filtrer
  • Heure
  • Afficher
Tout effacer
nouveaux messages

  • Calcul Session ID incorrect pour la méthode d'authentification

    Bonjour,

    Le soucis est que le code suivant ne fonctionne plus, le numero de session d'un utlitisateur ne correspond pas à celui de la base de donnée dans jos_session, hors celà a fonctionné en version 1.0.12 de joomla lorsque j'utilise ce code dans une page php statique, afin de récupérer le nom d'un d'utilisateur.

    Comme avec le code ci-dessous et le sujet source ci dessous:

    http://forum.joomla.fr/showthread.php?t=6709

    Code utilisé et fonctionnait en version 1.0.12 avant passage à la version 1.0.13

    Envoyé par Nupia Voir le message
    Bon très bien alors c'est parti !!

    Alors tout d'abord, il y a un fichier à inclure dans votre application externe :

    Code:
    //$root_path est le répertoire d'installation de Joomla!
    
    	define('_VALID_MOS', 1);
    	include($root_path."configuration.php");
    Ensuite on calcule la valeur de l'indice de Session.

    Code:
    // Construction de l'indice du cookie :
    
    	$indice = md5('site'.$mosConfig_live_site);
    	$id = $_COOKIE[$indice];

    Bon la petite partie relou : le calcul de l'id de session, directement sortie du code de Joomla, c'est la que j'ai mis du temps a trouver (en relation avec la fonction mosh etc...)

    L'id de Session est réutilisé dans cette partie du code

    Bref voila c'est une version condensé du tout sans les inclusions :


    Code:
    $browser 	= @$_SERVER['HTTP_USER_AGENT'];
    		
    	switch ($mosConfig_session_type) {
    
    		case 2:
    
    	// 1.0.0 to 1.0.7 Compatibility
    	// lowest level security
    
    	$value = md5( $id . $_SERVER['REMOTE_ADDR'] );
    
    	break;
    
    
    
    
    		case 1:
    
    	// slightly reduced security  
    
    	$remote_addr = explode('.',$_SERVER['REMOTE_ADDR']);
    	$ip= $remote_addr[0] .'.'. $remote_addr[1] .'.'. $remote_addr[2];
    	$value = md5($mosConfig_secret.md5( $id . $ip . $browser ));
    	
    	break;
    			
    
    		default:
    
    	// Highest security level - new default for 1.0.8 and beyond
    
    	$ip = $_SERVER['REMOTE_ADDR'];
    	$value = md5($mosConfig_secret.md5( $id . $ip . $browser ));
    				
    	break;
    
    	}
    
    	//La variable « $value » retournée contient l'id de la session dans
    	//laquelle les informations de l'utilisateur sont enregistrées.
    Et enfin une petite requete sur la base de données

    Code:
    //Par l'intermédiaire d'une requête SQL on récupère les données
    	//contenues dans la base de données
    
    	$requete 	 =  "select * "
    		        .=  "from [PREFIXE]_session "
    		        .=  "where session_id = '".$value."'";
    Voila ! L'execution de la requete va vous ressortir tout ce que vous vouliez savoir de votre utilisateur, et vous pouvez vous en servir en dehors de Joomla

    Ce qui va ressortir de la base et qui pourrait vous intéresser :



    Si vous avez des questions n'hésitez pas





    Page consulter pour ce problème mais sans aucune piste pour moi, je ne vois pas comment obtenir le numero de session afin d'interroger ensuite la base de donnée comme je le faisait avant.

    1er lien indique une correspondance les levels de sécurités dans Configuration Global dans la partie administration puis onglet serveur donc méthode de calcul de session
    http://www.joomla.org/component/opti...emid,105/p,28/

    Ici je ne vois pas comment appeler ma page php avec la donnée que j'ai besoin à mon avis plus compliquer donc plus d'explication.
    http://forum.joomla.fr/showthread.ph...ghlight=kl_php

    Pouvez-vous m'aider pour le calul de session ou m'indiquer un lien une piste mais je n'ai pas trouver d'autre sujet s'y rapportant sauf un autre mais qui n'était pas sécurisé.

    Je préfère garder la première méthode mais le calcul semble avoir changé ou il s'agit d'un autre problème mais là celà m'est inconnu.

    Merci d'avance
    DJ AWAX www.djawax.net

  • #2
    c'est un bug connu dans la 1.0.13

    Virtuemart a fait une maj concernat ce problème
    joomfish aussi http://forum.joomla.fr/showthread.php?t=51771

    Commentaire


    • #3
      Merci pour la piste je vais regarder mais il ne s'agit pas de ces composants.


      Il s'agit d'avoir une page externe à joomla d'y intégrer le code vu ci-dessus afin de récupérer le numéro de session_id et donc de pouvoir intérroger la base de donnée. Seul hic le calcul du numéro de session_id fonctionnait avant et plus maintenant suite au changement de version de joomlà comme préciser au premier post.

      Donc si quelqu'un a une idée pour avoir le bon n° de session_id, je lui dit merci d'avance merci.
      DJ AWAX www.djawax.net

      Commentaire


      • #4
        Salut!
        j'ai besoin pour une application externe de l'id de session généré par joomla, aurais tu la réponse à la question que tu te posais?
        merci

        Commentaire


        • #5
          $currentSession = JSession::getInstance('none',array());
          echo "<br/>Id=" . $currentSession->getId();

          ?

          Commentaire

          Annonce

          Réduire
          1 sur 2 < >

          C'est [Réglé] et on n'en parle plus ?

          A quoi ça sert ?
          La mention [Réglé] permet aux visiteurs d'identifier rapidement les messages qui ont trouvé une solution.

          Merci donc d'utiliser cette fonctionnalité afin de faciliter la navigation et la recherche d'informations de tous sur le forum.

          Si vous deviez oublier de porter cette mention, nous nous permettrons de le faire à votre place... mais seulement une fois
          Comment ajouter la mention [Réglé] à votre discussion ?
          1 - Aller sur votre discussion et éditer votre premier message :


          2 - Cliquer sur la liste déroulante Préfixe.

          3 - Choisir le préfixe [Réglé].


          4 - Et voilà… votre discussion est désormais identifiée comme réglée.

          2 sur 2 < >

          Assistance au forum - Outil de publication d'infos de votre site

          Compatibilité: PHP 4.1,PHP4, 5, 6DEV MySQL 3.2 - 5.5 MySQLi from 4.1 ( @ >=PHP 4.4.9)

          Support Version de Joomla! : | J!3.0 | J!2.5.xx | J!1.7.xx | J!1.6.xx | J1.5.xx | J!1.0.xx |

          Version française (FR) D'autres versions sont disponibles depuis la version originale de FPA

          UTILISER À VOS PROPRES RISQUES :
          L'exactitude et l'exhaustivité de ce script ainsi que la documentation ne sont pas garanties et aucune responsabilité ne sera acceptée pour tout dommage, questions ou confusion provoquée par l'utilisation de ce script.

          Problèmes connus :
          FPA n'est actuellement pas compatible avec des sites Joomla qui ont eu leur fichier configuration.php déplacé en dehors du répertoire public_html.

          Installation :

          1. Téléchargez l'archive souhaitée : http://afuj.github.io/FPA/

          Archive zip : https://github.com/AFUJ/FPA/zipball/master

          2. Décompressez le fichier de package téléchargé sur votre propre ordinateur (à l'aide de WinZip ou d'un outil de décompression natif).

          3. Lisez le fichier LISEZMOI inclus pour toutes les notes de versions spécifiques.

          4. LIRE le fichier de documentation inclus pour obtenir des instructions d'utilisation détaillées.

          5. Téléchargez le script fpa-fr.php à la racine de votre site Joomla!. C'est l'endroit que vous avez installé Joomla et ce n'est pas la racine principale de votre serveur. Voir les exemples ci-dessous.

          6. Exécutez le script via votre navigateur en tapant: http:// www. votresite .com/ fpa-fr.php
          et remplacer www. votresite .com par votre nom de domaine


          Exemples:
          Joomla! est installé dans votre répertoire web et vous avez installé la version française du fichier FPA:
          Télécharger le script fpa-fr.php dans: /public_html/
          Pour executer le script: http://www..com/fpa-fr.php

          Joomla! est installé dans un sous-répertoire nommé "cms" et vous avez installé la version française du fichier FPA:
          Télécharger le script fpa-fr.php dans: /public_html/cms/
          Pour executer le script: http://www..com/cms/fpa-fr.php

          En raison de la nature très sensible de l'information affichée par le script FPA, il doit être retiré immédiatement du serveur après son utilisation.

          Pour supprimer le script de votre site, utilisez le lien de script de suppression fourni en haut de la page du script. Si le lien de suppression échoue pour supprimer le script, utilisez votre programme FTP pour le supprimer manuellement ou changer le nom une fois que le script a généré les données du site et le message publié sur le forum. Si le script est toujours présent sur le site, il peut être utilisé pour recueillir suffisamment d'informations pour pirater votre site. Le retrait du script empêche des étrangers de l'utiliser pour jeter un oeil à la façon dont votre site est structuré et de détecter les défauts qui peuvent être utilisé à vos dépends.
          Voir plus
          Voir moins
          Travaille ...
          X