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

Symfony PHP Discussion :

CSRF attaque avec IE [1.x]


Sujet :

Symfony PHP

  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2009
    Messages
    321
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 321
    Par défaut CSRF attaque avec IE
    Bonjour,
    Je viens de déployer mon application sur mon serveur.
    Arrivant à la page de connexion, j'entre mes identifiants et mot de passe, tout fonctionne bien...
    Sauf sur IE. En effet, impossible de me connecter sur l'appli en utilisant IE (FireFox et Chrome pas de problèmes).
    Je reçois une alerte "csrf token: CSRF attack detected."

    C'est étrange, car quand je développais en local, je n'ai jamais eu cette erreur même avec IE...

    J'utilise le plugin sfDoctrineGuardPlugin.

    Avez vous une idée du pourquoi ?

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2009
    Messages
    321
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 321
    Par défaut
    En désactivant la protection CSRF sur ce form je ne vois plus l'erreur:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $this->disableLocalCSRFProtection();
    Mais le système ne m'affiche pas la page voulue...
    Il reste sur la page de login. (signinSuccess)

  3. #3
    Membre chevronné
    Inscrit en
    Août 2007
    Messages
    360
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 360
    Par défaut
    Bonjour,

    Aurais tu un petit bout de code sur ta manière d'utiliser ce plugin ??

    C'est étonnant que tu n'ai pas cette erreur sur d'autres navigateurs, serait-ce un problème de cache ??

    Le CRSF, ne le désactive pas, c'est un conseil, il s'agit d'un protection de sécurité, qui permet de sécuriser tes formulaires grâce à l'ajout d'un token de sécurité dans chacun d'eux...

    Cordialement,

    Mathieu

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2009
    Messages
    321
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 321
    Par défaut
    Ma manière d'utiliser ce plugin est celle de base, je n'ai pas touché au code du plugin...

    Oui je sais qu'il est déconseillé de désactiver la protection csrf, je l'ai fais dans l'unique but de voir si IE arrivait à se connecter en n'ayant pas cette validation à faire... Et il se trouve que non.

    J'ai vidé maintes fois le cache mais cela ne change rien...

    De plus sous Chrome ou FF, aucun problèmes

  5. #5
    Membre chevronné
    Inscrit en
    Août 2007
    Messages
    360
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 360
    Par défaut
    Bonjour,

    Tu peux nous mettre un petit bout de code, qu'on appréhende mieux ton problème ??

    A vu de nez, tu dois mal rediriger lors du submit, c'est pour ça que le framework te renvoie une attaque potentielle !!!

    Cordialement,

    Mathieu

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2009
    Messages
    321
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 321
    Par défaut
    Il n'y a justement aucun code à montrer, j'ai juste une application sécurisée.
    Donc lorsqu'on est pas connecté, on voit le formulaire de connexion de sfDotrineGuardPlugin.
    Le module sfGuardAuth est bien activé, ainsi que sfGuardGroup, sfGuardUser et sfGuardPermission...

  7. #7
    Membre éprouvé Avatar de Maerlyn31
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2011
    Messages
    71
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2011
    Messages : 71
    Par défaut
    Hello,

    Pour avancer un peu, pourrais-tu nous montrer le code du formulaire généré par FF, puis par IE ? Si il s'agit d'une différence de comportement entre deux navigateur, il s'agit forcément d'un problème d'interprétation, tu as peut être un id de formulaire ou de champ qui est uniquement numérique, ou quelque chose du genre ...

    Sous FF, avec l'extension WebDebugToolbar, tu peux lancer une validation du code dans Outils => Valider le HTML local ... peut être une autre piste à explorer !

    Bon courage en tout cas, j'ai déjà eu ce genre de soucis avec un IE capricieux, la seule solution a été ... en fait on a jamais trouvé, on a implémenter quelque chose de complètement différent qui a fonctionné du premier coup, et les causes du bug sont restées mystérieuses

  8. #8
    Membre chevronné
    Inscrit en
    Août 2007
    Messages
    360
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 360
    Par défaut
    Moi je dis obligatoirement un problème de cache...

  9. #9
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2009
    Messages
    321
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 321
    Par défaut
    Voici le code du formulaire généré par FF :

    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
    25
    26
    27
    28
    <div id="signin_container" class="signin_container">
     
    <form action="/index.php/guard/login" method="post">
      <table class="signin_table">
        <tbody>
          <tr>
      <th><label for="signin_username">Nom d'utilisateur</label></th>
      <td><input type="text" name="signin[username]" id="signin_username" /></td>
    </tr>
    <tr>
      <th><label for="signin_password">Password</label></th>
     
      <td><input type="password" name="signin[password]" id="signin_password" /><input type="hidden" name="signin[_csrf_token]" value="01c9e116a75614e74e04228a61562b14" id="signin__csrf_token" /></td>
    </tr>
        </tbody>
        <tfoot>
          <tr>
            <td colspan="2">
              <input type="submit" value="Se connecter" />
     
     
                      </td>
          </tr>
     
        </tfoot>
      </table>
    </form>
    </div>
    et voici celui généré par IE :

    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
    25
    <div id="signin_container" class="signin_container">
    <form action="/index.php/guard/login" method="post">
      <table class="signin_table">
        <tbody>
          <tr>
      <th><label for="signin_username">Nom d'utilisateur</label></th>
      <td><input type="text" name="signin[username]" id="signin_username" /></td>
    </tr>
    <tr>
      <th><label for="signin_password">Password</label></th>
      <td><input type="password" name="signin[password]" id="signin_password" /><input type="hidden" name="signin[_csrf_token]" value="3fcccb590f6264252662039d9cda4be4" id="signin__csrf_token" /></td>
    </tr>
        </tbody>
        <tfoot>
          <tr>
            <td colspan="2">
              <input type="submit" value="Se connecter" />
     
     
                      </td>
          </tr>
        </tfoot>
      </table>
    </form>
    </div>

  10. #10
    Membre chevronné
    Inscrit en
    Août 2007
    Messages
    360
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 360
    Par défaut
    Le champ hidden "_csrf_token" est bien présent sur les deux...

    C'est un problème de cahe, j'en suis persuadé !!!

    Cordialement,

    Mathieu

  11. #11
    Expert confirmé
    Avatar de Michel Rotta
    Homme Profil pro
    DPO
    Inscrit en
    Septembre 2005
    Messages
    4 954
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : DPO
    Secteur : Distribution

    Informations forums :
    Inscription : Septembre 2005
    Messages : 4 954
    Par défaut
    Essayes de vider le cache.

    Essayes sur une autre machine.

    Quel version IE as-tu testées ?

  12. #12
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2009
    Messages
    321
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 321
    Par défaut
    J'ai vidé le cache, çà ne résout pas le problème.
    J'ai testé IE7, 8 et 9.

    Sur une autre machine, le problème persiste.

    EDIT : Il semblerait que le problème vienne de l'heure du serveur (qui retardait d'environ 45 minutes ). En remettant la bonne heure, j'arrive à m'y connecter depuis une autre machine.
    Par contre sur la mienne, même en vidant mon cache / cookies impossible de m'y connecter...
    Mais bon, ce n'est pas important, du moment que les utilisateurs peuvent utiliser IE

    Merci aux personnes qui ont essayé de m'aider.

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

Discussions similaires

  1. Avec quoi attaquer ma base Firebird ?
    Par jesusnavas dans le forum Bases de données
    Réponses: 21
    Dernier message: 20/10/2008, 11h27
  2. attaquer une base de données Oracle avec du code C
    Par lecyberax dans le forum Oracle
    Réponses: 3
    Dernier message: 18/04/2006, 13h24
  3. attaquer base sql server avec easyphp sous windows
    Par jarod71 dans le forum MS SQL Server
    Réponses: 7
    Dernier message: 11/12/2003, 14h17
  4. Comment attaquer Mysql avec Visual C++
    Par brisou_ dans le forum Administration
    Réponses: 4
    Dernier message: 11/03/2003, 13h12

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