IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

[Sécurité] securité et google barre


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Janvier 2005
    Messages
    71
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 71
    Par défaut [Sécurité] securité et google barre
    Bonjour,

    J'ai crée un logiciel de gestion commerciale (devis - factures - gestion des produits ...) en intranet pour une petite structure (env. 10 pers). Il utilisé depuis 6 mois et on viens de me faire remarquer une grosse faille en securité sur un des postes.

    Mon problème est le suivant : j'ai un client qui a rajouté un add-on sur google (le google desktop 4.2006.0627.0501-frs-pb) et quand il fait une recherche sur le net google lui ramene les résultats contenus dans l'historique de son poste.

    Et là, il a accès au logiciel de gestion commerciale et il arrive a consulter ses pages sans etre déconnecté (il est connecté automatiquement lors de l'ouverture de la page depuis google).

    Voici mon code de connexion s'il peut vous etre utile :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
     
    // récupère les valeurs saisises dans les champs de texte
    if(isset($_POST['TxtId'])&& isset($_POST['TxtPass']))
    {
        if($_POST['TxtId'] != "" AND $_POST['TxtPass'] != "")
       {
             $_SESSION['id'] = $_POST['TxtId'];
             $_SESSION['pass'] = md5($_POST['TxtPass']);
        }
        else{$_SESSION['id'] = "";$_SESSION['pass'] = "";}
    }
     
    // Vérifie si l'identifiant et le mot de passe sont valides 
    $RechAdminConnect = "SELECT id, MDP FROM utilisateur WHERE MotDePasse = '".$_SESSION['pass']."'";
    $RechAdminConnect .= "AND Identifiant = '".$_SESSION['id']."' ";
    $AdminConnect = mysql_query($RechAdminConnect) or die(mysql_error());
    $row_AdminConnect = mysql_fetch_assoc($AdminConnect);
    $totalRows_AdminConnect = mysql_num_rows($AdminConnect);
     
    // traitement des erreurs

    J'aimerais savoir si certains d'entre vous on déjà eu le probleme et si oui comment vous l'avez résolu.

    Merci

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    50
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 50
    Par défaut
    Vérifies-tu sur chacune de tes pages que la variable de session contenant ton login/pass est bien valide ?

    Il faudrait que tu fasse une page de connexion qui initalise une variable de session avec le login par exemple si l'identification est correcte, et la laisse à vide dans le cas contraire.

    Ainsi, en début de chaque page, tu vérifies si la variable de session est remplie ou pas, dans le cas contraire tu affiches un message d'erreur ou une redirection vers la page de login.

  3. #3
    Membre confirmé
    Inscrit en
    Janvier 2005
    Messages
    71
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 71
    Par défaut
    Je verifie les identifiants de session sur chaque page sur chaque page. Le pitit bout de script que j'ai mis est appelé sut toutes les pages.

    J'ai remarqué un truc bizzare sur la page que l'utilisateur appelle, la feuille de style n'est pas prise en compte (la feuille de style est appellée en dessous de la verification du login/mdp), alors que si l'utilisateur change de page (ex : clique sur un lien retour, la page de style est prise en compte) et ce sur n'importe quelle page du logiciel.

    Une autre chose m'intrigue : l'utilisateur peut avoir accès à ce qu'il a recherché par google (ex : l'utilisateur a cherché 'test' dans les produits, a redémarré son PC -> donc fermé toutes ses pages et ben si il cherche test sous google, l'addone lui donnera une page avec les résultats affichés de sa recherche test sous le logiciel).

    Je pense que pour résoudre le probleme se situe au niveau des coockies crée par la session existante, mais je vois pas comment les supprimer.

    Cordialement.

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    50
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 50
    Par défaut
    Ton code n'est pas bon.
    tu devrais avoir quelque chose de ce style sur la page de connexion :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
     if (!isset($_SESSION['login']))
         $_SESSION['login']="";
     
      if (!isset($_SESSION['log']))
            $_SESSION['log']=false;
     
     
        if (isset($_POST['b_valider']))
        {        
            $requete = "SELECT * FROM utilisateur where identifiant=\"".$_POST['login']."\" AND MotDePasse =\"".$_POST['pass']."\";";
            $Resultat = mysql_query($requete,$db)or die(mysql_error());
            $nbrResultat = mysql_numrows($Resultat); 
     
            if ($nbrResultat>0)
            {
                $_SESSION['login']=$_POST['login'];
                $_SESSION['log']=true;
            }
            else
            {
                $_SESSION['login']="";
                $_SESSION['log']=false;
            }
        }

    L'accès à la base n'est utile que sur la page de connexion !
    Ensuite, au début de chaque page, tu vérifie si le login est bien rensiegné :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    //ON TESTE SI L'UTILISATEUR S'EST LOGGE
    if (!isset($_SESSION['loginAdmin']))
     $_SESSION['loginAdmin']="";
     
    if (!isset($_SESSION['logAdmin']))
        $_SESSION['logAdmin']=false;
     
     
    if ($_SESSION['logAdmin']==false)  
    {
       //retour à la page de connexion
       Require 'login.php';
    }
    else
    { 
       //AFFICHAGE DE TA PAGE
    }

  5. #5
    Membre confirmé
    Inscrit en
    Janvier 2005
    Messages
    71
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 71
    Par défaut
    déjà merci de vos réponse,

    j'aimerais ajouter deux chose :

    1° Mon code de la page de connexion marche car si un utilisateur reste inactif sur la page, au bour de 20 mn il est déconnecté ou si il rentre l'adresse en "brute" dans la barre d'adresse il est bien déconnecté. (Je prend quand meme en come la remarque de turie qui est juste).

    2° Sur chaque page à laquelle on peut accéder à partir de google il y a ce message qui s'affiche tout en haut :
    Une version de Http:/IPduServeur/Logiciel/Page.php en provenance de votre cache personnel.
    Cette page a peut-être été modifiée depuis. Cliquez ici pour obtenir la page actuelle.
    Cette page étant stockée sur votre ordinateur, il n'est pas possible d'établir une liaison publique avec elle.

    Il est possible que Google ne soit ni affilié aux auteurs de cette page ni responsable de son contenu. Cette page peut être protégée par des droits d'auteur.
    Donc le probleme vient du cache de l'ordinateur, il y a il un moyen de désactiver le cache pour mon site ou de supprimer les informations contenues dedant.

    NB L'utilisateur qui accède au logiciel depuis google se connecte en local sur le serveur (le serveur est situé dans l'agence principale de l'entreprise). Comme c'est un logiciel interne on se connecte avec l'adresse IP du serveur (en local pour l'agence principale et depuis internet pour les autres agences).
    Le logiciel n'est aucunement référencé sous google.

    Cordialement

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    50
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 50
    Par défaut
    Tu peux désactiver le cache, pour éviter le stockage en cache de tes pages html, cela ne vide pas le cache mais evite simplement de stocker la page actuelle dans le cache.

    Code à placer entre tes balises <head> :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <META HTTP-EQUIV="expires" CONTENT="0">
     
    <META HTTP-EQUIV="Pragma" CONTENT="no-cache">

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Sécurité] Securité session php
    Par saturn1 dans le forum Langage
    Réponses: 4
    Dernier message: 13/04/2008, 14h06
  2. [Sécurité] securité sur un site
    Par vovor dans le forum Langage
    Réponses: 10
    Dernier message: 27/12/2007, 06h48
  3. [Sécurité] Securité cross site scripting
    Par doudou439 dans le forum Langage
    Réponses: 3
    Dernier message: 20/01/2007, 13h59
  4. Réponses: 5
    Dernier message: 27/06/2006, 15h03
  5. [Sécurité] securite avec les sessions.
    Par krapoulos dans le forum Langage
    Réponses: 7
    Dernier message: 05/11/2005, 14h41

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo