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

Web Perl Discussion :

Simuler une identification HTTP


Sujet :

Web Perl

  1. #1
    Membre du Club
    Profil pro
    DBA Oracle / MySQL / SQLServer
    Inscrit en
    Janvier 2005
    Messages
    95
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : DBA Oracle / MySQL / SQLServer

    Informations forums :
    Inscription : Janvier 2005
    Messages : 95
    Points : 54
    Points
    54
    Par défaut Simuler une identification HTTP
    Bonjour,

    J'ai pour tache de faire un script perl qui permette de simuler la connection d'une personne sur une page web PHP / Mysql. (et oracle...mais je verrai plus tard pour ça)

    Donc le script doit entrer un login et un mot de passe dans un formulaire puis retourner le résultat, en particulier le contenu de la page.

    Ceci et pour pouvoir automatiser des controles de site intranet PHP/Mysql ou oracle de façon automatisée.

    En cherchant sur ce forum et le net j'ai fini avec le script suivant :

    #!/usr/bin/perl -w
    use strict;
    use LWP::UserAgent;
    use HTML::Form;

    # les paramètres personnels
    my ( $user, $pass ) = qw( toto tata );
    my $base = 'http://webdbqual/phpadmin/';

    # initialisation de l'agent
    my $ua =
    LWP::UserAgent->new(
    agent => 'Mozilla/4.73 [en] (X11; I; Linux 2.2.16 i686; Nav)' );

    # création de la requête
    my $req = HTTP::Request->new( GET => "${base}index.php" );

    # exécute la requête et reçoit la réponse
    my $res = $ua->request($req);
    die $res->status_line if not $res->is_success;

    # le formulaire de login est le second formulaire de la page
    my $form = ( HTML::Form->parse( $res->content, $base ) )[1];

    # remplit les champs
    $form->find_input('pma_username')->value($user);
    $form->find_input('pma_password')->value($pass);

    # valide et renvoie le formulaire
    $res = $ua->request( $form->click );

    my $code = $res->code();
    print "Code:".$code."\n";

    if ($res->is_success){
    print "Connection OK. Contenu :\n".$res->content;
    }
    else{
    print "Connection refusée.\n".$res->status_line;
    }
    En l'occurence ici je tente de me connecter à PHPMyAdmin.
    Le code retour est 200, normal, meme je ne m'identifie pas puisque le login et mot de passe sont bidons, le serveur HTTP lui répond OK.
    Donc pour pouvoir savoir si j'ai j'ai bien été authentifié avec le formulaire, je voudrais récupérer le contenu de la page après la validation est l'envoit du formulaire, sauf que ici le contenu est vide !

    Est ce que quelqu'un pourrait m'expliquer pourquoi ?
    et aussi que pensez vous de cette façon de faire, y a t il d'autres façon plus propres ??

    D'avance merci et Bon WE

  2. #2
    Expert éminent
    Avatar de Jedai
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2003
    Messages
    6 245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Avril 2003
    Messages : 6 245
    Points : 8 586
    Points
    8 586
    Par défaut
    La page est-elle du https ? Dans ce cas, il faut que Net::SSLeay soit installé pour que LWP puisse y accéder.

    --
    Jedaï

  3. #3
    Membre du Club
    Profil pro
    DBA Oracle / MySQL / SQLServer
    Inscrit en
    Janvier 2005
    Messages
    95
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : DBA Oracle / MySQL / SQLServer

    Informations forums :
    Inscription : Janvier 2005
    Messages : 95
    Points : 54
    Points
    54
    Par défaut
    merci pour ta réponse

    non c'est du http.

  4. #4
    Expert éminent
    Avatar de Jedai
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2003
    Messages
    6 245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Avril 2003
    Messages : 6 245
    Points : 8 586
    Points
    8 586
    Par défaut
    Peut-être l'identification utilise-t-elle un cookie quelque part... Essaie de rajouter un objet HTTP::Cookie à ton LWP::UserAgent (dans sa "cookie_jar").

    --
    Jedaï

  5. #5
    Membre du Club
    Profil pro
    DBA Oracle / MySQL / SQLServer
    Inscrit en
    Janvier 2005
    Messages
    95
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : DBA Oracle / MySQL / SQLServer

    Informations forums :
    Inscription : Janvier 2005
    Messages : 95
    Points : 54
    Points
    54
    Par défaut
    ah oui effectivement c'est bien possible
    je m'y met dès lundi -> cette fois c'est pour le boulot !

  6. #6
    Membre du Club
    Profil pro
    DBA Oracle / MySQL / SQLServer
    Inscrit en
    Janvier 2005
    Messages
    95
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : DBA Oracle / MySQL / SQLServer

    Informations forums :
    Inscription : Janvier 2005
    Messages : 95
    Points : 54
    Points
    54
    Par défaut
    Salut

    J'ai changé les caractéristiques de mon agent, mais c'est toujour pareil :

    # initialisation de l'agent
    my $ua =
    LWP::UserAgent->new(
    agent => 'Mozilla/4.73 [en] (X11; I; Linux 2.2.16 i686; Nav)',
    cookie_jar => HTTP::Cookies->new(
    file => '/apps/O_TOOLS/exe/cookie.txt',
    autosave => 1,
    ignore_discard => 1, # le cookie devrait être effacé à la fin
    )
    );
    le contenu de la page = rien...

  7. #7
    Membre du Club
    Profil pro
    DBA Oracle / MySQL / SQLServer
    Inscrit en
    Janvier 2005
    Messages
    95
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : DBA Oracle / MySQL / SQLServer

    Informations forums :
    Inscription : Janvier 2005
    Messages : 95
    Points : 54
    Points
    54
    Par défaut
    pas d'idée ?

  8. #8
    Membre régulier Avatar de rootdaoud
    Inscrit en
    Mars 2005
    Messages
    100
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 100
    Points : 78
    Points
    78
    Par défaut
    Hola,
    J'ai pas bien compris votre probléme. Mais en général , pour l'automatisation j'utilise le module WWW::Mechanize, c'est trés pratique.
    Merci Developpez.com

Discussions similaires

  1. Simuler la fin d'une requete http ?
    Par laurent_h dans le forum Langage
    Réponses: 14
    Dernier message: 04/06/2011, 18h53
  2. Simuler une page https
    Par sony351 dans le forum Général Conception Web
    Réponses: 0
    Dernier message: 01/11/2010, 03h11
  3. [LINUX] Simuler une requête HTTP POST ou GET
    Par Anified dans le forum Linux
    Réponses: 1
    Dernier message: 05/02/2007, 16h11
  4. Simuler une identification via un script
    Par Comawhite dans le forum Langage
    Réponses: 5
    Dernier message: 21/09/2006, 14h26
  5. [Applet]simuler une touche clavier
    Par mat10000 dans le forum Interfaces Graphiques en Java
    Réponses: 19
    Dernier message: 12/12/2003, 16h23

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