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 :

Construction d'un Robot Web (HTTPS + Proxy + JS) ?!


Sujet :

Web Perl

  1. #1
    Membre averti
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Mai 2003
    Messages
    921
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Mai 2003
    Messages : 921
    Points : 449
    Points
    449
    Par défaut [Abandonné] Construction d'un Robot Web (HTTPS + Proxy + JS) ?!
    Bonjour à tous,

    je cherche à créer un Robot Web me permettant de me connecter à un site Internet gouvernemental en HTTPS à travers le Proxy (Webwasher) de l'entreprise où je suis.

    Je rassure tout le monde : j'ai l'autorisation de faire ça de la part du site Internet en question et bien évidemment c'est dans le cadre de mon travail !

    La connexion à ce fameux site en HTTPS via le Proxy ne pose plus de problèmeS, sic !

    Par contre, l'authentification me donne du fil à retordre !


    Voici comment cela fonctionne :
    - remplissage de 2 champs "login" et "pass" ;
    - clic sur le mot "Entrer" ;
    - chargement de la page résultat.


    Rien de bien extraordinaire me direz-vous ... sauf que ce formulaire ne possède pas de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type="submit" ... />
    et que l'attribut "action" de la balise <form> n'est pas présent !!!

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <form id="blablaLogin" name="blablaLogin" method="post" onsubmit="return false;">

    Comment tout cela peut-il bien fonctionner ?

    C'est assez simple : "login" et "pass" sont des <input /> classiques, mais "Entrer" est la valeur d'une simple balise <div> qui est surchargé par un CSS afin que la valeur de ce <div> soit cliquable !?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <div class="blabla_class" onmouseOver='HoverClass(this);' onmouseOut='HoverClass(this);' onclick="testlogin();" title="Cliquer pour entrer dans une session privée de blabla">Entrer</div>
    La valeur "Entrer", qui devient donc cliquable, appelle une fonction Javascript via un attribut onclick="testlogin();" de la balise <div> à laquelle elle appartient.

    La fonction "testlogin()" :
    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
    function testlogin() {
     	var testok=true
    	if (document.getElementById("blablaLogin").login.value=="")
    		{alert("Vous devez donner un identifiant pour accéder à l'ensemble des ressources de blabla !! Merci");
    		testok=false;
    		}
    	else if (document.getElementById("blablaLogin").pass.value=="")
    		{alert("Vous devez donner un mot de passe pour accéder à l'ensemble des ressources de blabla !! Merci");
    		testok=false;
    		}
    	if (testok)
    		{envoyer();
    		}
    	else  {
    		document.getElementById("blablaLogin").login.focus();
    		}
    }		
     
    function envoyer() {
    	document.getElementById("blablaLogin").action = "/blablasession.asp";
    	document.getElementById("blablaLogin").target = "";
    	document.getElementById("blablaLogin").submit();
    }

    Grâce à cet #@''¤*µ ingénieux système ... je ne peux pas utiliser la méthode suivante nécessaire à la validation de mon formulaire :
    Je ne peux pas non plus passer directement en paramètres, via l'url, le "login" et "pass" à la page affectée à l'attribut "action" via le JS ... car on est en method="POST" :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    https://blabla.gouv.fr/blablasession.asp?login=mon_login&pass=mon_pass
    ... moi j'y croyais !!!


    Je pense que la solution serait que je commence par faire une connexion + authentification classique, mais au moment de la validation du formulaire : il faudrait que j'arrive à indiquer l'url de l'attribut "action" de la balise <form> associée à mon formulaire d'authentification ... suis-je claire ?


    Mon code actuel :
    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
    29
    30
    31
    32
    33
    34
        #!c:/perl/bin -w
        use strict; use warnings;
        use WWW::Mechanize;
        use Crypt::SSLeay;
        use HTML::TreeBuilder;
     
        my $m = WWW::Mechanize->new;
     
    		# PROXY SUPPORT
    		$ENV{HTTPS_PROXY} = 'http://proxy.mycompany.com:8080';
     
    		# PROXY_BASIC_AUTH
    		$ENV{HTTPS_PROXY_USERNAME} = 'mon_ident';
    		$ENV{HTTPS_PROXY_PASSWORD} = 'mon_mdp';
     
        # récupération des informations
        $m->agent_alias("Linux Mozilla");
        $m->get('https://blabla.gouv.fr/default.asp');
        exit unless $m->success;
     
        # remplissage et validation
        $m->set_fields(
            login => 'mon_login', # entrez vos identifiants de connexion ici
            pass => 'mon_pass',
        );
        $m->click;
        die $m->res->status_line unless $m->success;
     
     
        # affichage des informations
        my $tree = HTML::TreeBuilder->new_from_content( $m->content );
        print
          map { $_->as_trimmed_text . "\n" }
          $tree->look_down( _tag => 'span', id => qr/blabla_Ident/ );


    Une idée ?


    Gôm ... en plein doute !
    Quand on n'a pas d'tête, on a ...

  2. #2
    Membre habitué

    Profil pro
    Inscrit en
    Août 2005
    Messages
    118
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 118
    Points : 142
    Points
    142
    Par défaut
    Bonjour,
    Je ne connais pas bien WWW:Mechanize (j'utilise plutôt LWP::USERAgent).
    Pourquoi ne pas simplement faire un post
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    $m->post('https://blabla.gouv.fr/blablasession.asp',
         [ login => 'foo',
           pass => 'bar' ] );
    sinon
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $m->current_form->action('/blablasession.asp')
    ne marche pas ?
    A+
    Joris

  3. #3
    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
    Tu diras aux administrateurs du sites qu'ils feraient mieux d'utiliser des standards, hein ? Un site gouvernemental qui ne fonctionne pas sans Javascript, c'est un peu saumâtre...

    Bon sinon je te recommande effectivement de faire ton post() à la main, après avoir repéré dans le javascript à quelle adresse tu devais l'envoyer.

    --
    Jedaï

  4. #4
    Membre averti
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Mai 2003
    Messages
    921
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Mai 2003
    Messages : 921
    Points : 449
    Points
    449
    Par défaut
    Citation Envoyé par d-jo
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    $m->post('https://blabla.gouv.fr/blablasession.asp',
         [ login => 'foo',
           pass => 'bar' ] );
    Fonctionne !

    Citation Envoyé par d-jo
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $m->current_form->action('/blablasession.asp')
    Ne fonctionne pas ... mais on s'en fout !

    Quand on n'a pas d'tête, on a ...

  5. #5
    Membre averti
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Mai 2003
    Messages
    921
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Mai 2003
    Messages : 921
    Points : 449
    Points
    449
    Par défaut
    Citation Envoyé par Jedai
    Tu diras aux administrateurs du sites qu'ils feraient mieux d'utiliser des standards, hein ? Un site gouvernemental qui ne fonctionne pas sans Javascript, c'est un peu saumâtre...
    Je pense que cela a été spécialement fait pour lutter contre les robots Web ... mais c'est perfectible apparemment !

    PS : Je ne mets pas encore mon post à car j'ai quelques petites choses en plus à faire qui ne fonctionnent pas encore ... mais je cherche d'abord de mon côté !
    Quand on n'a pas d'tête, on a ...

  6. #6
    Membre averti
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Mai 2003
    Messages
    921
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Mai 2003
    Messages : 921
    Points : 449
    Points
    449
    Par défaut
    Je vais avoir quelques petites choses à dire aux créateurs de ce site je pense ...


    Voilà ce que j'essaye de faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $m->follow_link( text => 'blabla-FORMATION' );
        die "Link failed: ", $m->response->status_line
            unless $m->success;
    Ca ne fonctionne pas car ...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <tr onclick="window.location.href='/blablaApplif.asp?blablaAppli=49';"><td ...>blabla-FORMATION</td></tr>
    Un des éléments du menu sur lequel je veux simuler un clic est encore un événement "onclick" !


    Le mieux est de faire comme ça, non ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
        $m->get('https://blabla.gouv.fr/blablaApplif.asp?blablaAppli=49');
        	exit unless $m->success;
    Si oui, alors pourquoi :
    ne me renvoit rien ?
    Quand on n'a pas d'tête, on a ...

  7. #7
    Membre averti
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Mai 2003
    Messages
    921
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Mai 2003
    Messages : 921
    Points : 449
    Points
    449
    Par défaut
    Il y a une fonction qui permet de vérifier le navigateur, mais elle n'a rien de classique ! Elle vérifie l'url à partir de laquelle on arrive sur la page en cours :

    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
    function checkbrowserclient()
    					{var ad = window.location.pathname;
    					var ad1= window.location.pathname;
     
    						if (document.layers) {top.location.href="http://blabla.gouv.fr/";}
    						try
    							{
    								var sParentLocation = window.parent.location.href;
    								//alert(window.parent.name);window.frames["blablamenu"]
    							}
    						catch (e)
    							{
    								var sParentLocation = false;
    							}
    						if (!sParentLocation || sParentLocation ==window.location.href)
    							{
    							document.getElementById("newurl").value=window.location.href;
    							//alert('yes '+ ad+ '|');
    							document.getElementById("blablaForm").submit();
     
    							//window.location.href= "/index.asp?pageCalled=" + window.location.href;
    							}
    					}


    Je vois pas comment parer cela ... une idée ?
    Quand on n'a pas d'tête, on a ...

  8. #8
    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
    Il suffit de changer le referer() de la requête en modifiant le HTTP::Header par défaut.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $m->add_header( Referer => "http://blabla.gouv.fr/" );
    $m->get( ... );
    ou un truc comme ça.

    --
    Jedaï

  9. #9
    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
    Néanmoins je ne suis pas sûr que le problème soit vraiment là (après tout le Javascript n'est même pas exécuté dans notre approche). Peut-être devrais tu tenter de faire une session "manuellement" à travers le proxy logger.pl (dans le répertoire d'exemple de HTTP::Proxy) qui te montrera toutes les requêtes que tu fais, leur type et les réponses du serveur. Ca te donnera déjà une idée de ce que tu vas devoir faire.

    --
    Jedaï

  10. #10
    Membre averti
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Mai 2003
    Messages
    921
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Mai 2003
    Messages : 921
    Points : 449
    Points
    449
    Par défaut
    Citation Envoyé par Jedai
    Néanmoins je ne suis pas sûr que le problème soit vraiment là (après tout le Javascript n'est même pas exécuté dans notre approche). Peut-être devrais tu tenter de faire une session "manuellement" à travers le proxy logger.pl (dans le répertoire d'exemple de HTTP:roxy) qui te montrera toutes les requêtes que tu fais, leur type et les réponses du serveur. Ca te donnera déjà une idée de ce que tu vas devoir faire.

    --
    Jedaï

    Bonne idée, j'essayerai ça lundi, car le passage d'informations en header ne changent strictement rien !


    Merci encore.

    Gôm
    Quand on n'a pas d'tête, on a ...

  11. #11
    Membre averti
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Mai 2003
    Messages
    921
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Mai 2003
    Messages : 921
    Points : 449
    Points
    449
    Par défaut
    Je viens de découvrir d'où venait mon dernier problème ...


    Tout les liens contenus dans les menus sont modifiés avant d'être redirigés vers l'url exacte ... en JS !

    En fouillant dans les scripts JS ... paye ta galère ... j'ai réussi à récupérer tous les chemins absolus dont j'avais besoin, mais ... ce site utilise également (en plus du JS ...) le système des FRAMEs !


    Savez-vous comment je pourrais appeler une page (le FRAMESET) en lui définissant l'url de la page que contient son unique cadre (FRAME) ? Une sorte de passage en paramètres dans l'url, c'est pas possible ?!

    EDIT :
    Quelque chose dans ce goût là :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $m->follow_link( text => 'Texte_du_lien', target => 'blabla' );
    Sauf que cela ne fonctionne pas !


    Gôm
    Quand on n'a pas d'tête, on a ...

  12. #12
    Membre habitué

    Profil pro
    Inscrit en
    Août 2005
    Messages
    118
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 118
    Points : 142
    Points
    142
    Par défaut
    Tout les liens contenus dans les menus sont modifiés avant d'être redirigés vers l'url exacte ... en JS !

    En fouillant dans les scripts JS ... paye ta galère ... j'ai réussi à récupérer tous les chemins absolus dont j'avais besoin, mais ... ce site utilise également (en plus du JS ...) le système des FRAMEs
    Dire qu'il existe sans doute un outil pour générer tout ça (parceque là ça fait trop pour un simple esprit aussi pervers soit-il).

    Savez-vous comment je pourrais appeler une page (le FRAMESET) en lui définissant l'url de la page que contient son unique cadre (FRAME) ? Une sorte de passage en paramètres dans l'url, c'est pas possible ?!

    Il existe une extension WWW::Mechanize::Frames
    qui fait quelque chose de similaire à ce que tu cherches.
    Sinon dans www::mechanize les Frames sont concidérées comme des liens et peuvent donc être utilisés comme telle.
    Quelque chose comme
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $m->follow_link(url_regex => qr/blabla/, tag => 'frame');
    Si j'ai bien compris de quoi il s'agissait, parceque quand on parle de frame tout deviens moins clair


    Joris

  13. #13
    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
    Je te conseille vraiment d'essayer de faire une session avec logger.pl, tu y verras beaucoup plus clair après. (parce que là ce site a l'air d'avoir été fait par un professionnel de l'emmerdement maximal pour les robots...)

    --
    Jedaï

  14. #14
    Membre averti
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Mai 2003
    Messages
    921
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Mai 2003
    Messages : 921
    Points : 449
    Points
    449
    Par défaut
    Citation Envoyé par Jedai
    Je te conseille vraiment d'essayer de faire une session avec logger.pl, tu y verras beaucoup plus clair après. (parce que là ce site a l'air d'avoir été fait par un professionnel de l'emmerdement maximal pour les robots...)

    --
    Jedaï
    Je viens de faire des tests : tout fonctionne très bien, mais ... sachant que le site gouvernemental que je souhaite attaquer est en HTTPS ... ça fonctionne pas !
    Quand on n'a pas d'tête, on a ...

  15. #15
    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
    Le problème n'est-il pas plutôt que tu n'as pas réglé le proxy dans logger.pl ?

    --
    Jedaï

  16. #16
    Membre averti
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Mai 2003
    Messages
    921
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Mai 2003
    Messages : 921
    Points : 449
    Points
    449
    Par défaut
    Citation Envoyé par Jedai
    Le problème n'est-il pas plutôt que tu n'as pas réglé le proxy dans logger.pl ?

    --
    Jedaï
    J'ai simplement essayé comme ça (après les déclarations = "my") :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    # PROXY SUPPORT
    $ENV{HTTPS_PROXY} = 'http://proxy.mycompany.com:8080';
     
    # PROXY_BASIC_AUTH
    $ENV{HTTPS_PROXY_USERNAME} = 'mon_login';
    $ENV{HTTPS_PROXY_PASSWORD} = 'mon_pass';

    Ce n'est pas ça ?
    Quand on n'a pas d'tête, on a ...

  17. #17
    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
    Ben il faut quand même signaler à HTTP-Proxy qu'il doit utiliser un LWP::UserAgent différent (prenant en compte le proxy).

    Par exemple chez moi ça marche en remplaçant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    my $proxy = HTTP::Proxy->new(@ARGV);
    par :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    use LWP::UserAgent;
    my $ua = LWP::UserAgent->new();
    $ua->proxy('http', 'http://localhost:9000'); # change cette ligne
    # create and start the proxy
    my $proxy = HTTP::Proxy->new(@ARGV, agent => $ua);
    (j'ai chainé deux logger.pl, l'un modifié pour utiliser l'autre comme proxy... )

    --
    Jedaï

  18. #18
    Membre averti
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Mai 2003
    Messages
    921
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Mai 2003
    Messages : 921
    Points : 449
    Points
    449
    Par défaut
    Citation Envoyé par Jedai
    Ben il faut quand même signaler à HTTP-Proxy qu'il doit utiliser un LWP::UserAgent différent (prenant en compte le proxy).

    Par exemple chez moi ça marche en remplaçant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    my $proxy = HTTP::Proxy->new(@ARGV);
    par :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    use LWP::UserAgent;
    my $ua = LWP::UserAgent->new();
    $ua->proxy('http', 'http://localhost:9000'); # change cette ligne
    # create and start the proxy
    my $proxy = HTTP::Proxy->new(@ARGV, agent => $ua);
    (j'ai chainé deux logger.pl, l'un modifié pour utiliser l'autre comme proxy... )

    --
    Jedaï
    J'ai essayé comme tu me l'as dit et ça ne fonctionne pas !


    J'ai essayé comme ça aussi :
    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
    # create and start the proxy
    #my $proxy = HTTP::Proxy->new(@ARGV);
     
    #Gom
    use LWP::UserAgent;
    use Crypt::SSLeay;
     
    # PROXY SUPPORT
    $ENV{HTTPS_PROXY} = 'http://proxy.mycompany.com:8080';
     
    # PROXY_BASIC_AUTH
    $ENV{HTTPS_PROXY_USERNAME} = 'mon_login';
    $ENV{HTTPS_PROXY_PASSWORD} = 'mon_pass';
     
    my $ua = LWP::UserAgent->new();
    #$ua->proxy(['http', 'https'], 'http://mon_login:mon_pass@proxy.mycompany.com:8080/');
    # create and start the proxy
    my $proxy = HTTP::Proxy->new(@ARGV, agent => $ua);
    Quand on n'a pas d'tête, on a ...

  19. #19
    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
    Citation Envoyé par ghohm
    J'ai essayé comme tu me l'as dit et ça ne fonctionne pas !
    J'aimerais bien voir le code.

    J'ai essayé comme ça aussi :
    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
    # create and start the proxy
    #my $proxy = HTTP::Proxy->new(@ARGV);
     
    #Gom
    use LWP::UserAgent;
    use Crypt::SSLeay;
     
    # PROXY SUPPORT
    $ENV{HTTPS_PROXY} = 'http://proxy.mycompany.com:8080';
     
    # PROXY_BASIC_AUTH
    $ENV{HTTPS_PROXY_USERNAME} = 'mon_login';
    $ENV{HTTPS_PROXY_PASSWORD} = 'mon_pass';
     
    my $ua = LWP::UserAgent->new();
    #$ua->proxy('http', 'http://mon_login:mon_pass@proxy.mycompany.com:8080/');
    # create and start the proxy
    my $proxy = HTTP::Proxy->new(@ARGV, agent => $ua);
    Sauf que là tu n'appelle même pas env_proxy() :
    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
    # create and start the proxy
    #my $proxy = HTTP::Proxy->new(@ARGV);
     
    #Gom
    use LWP::UserAgent;
    use Crypt::SSLeay;
     
    # PROXY SUPPORT
    $ENV{HTTPS_PROXY} = 'http://proxy.mycompany.com:8080';
     
    # PROXY_BASIC_AUTH
    $ENV{HTTPS_PROXY_USERNAME} = 'mon_login';
    $ENV{HTTPS_PROXY_PASSWORD} = 'mon_pass';
     
    my $ua = LWP::UserAgent->new();
    $ua->env_proxy();
    # create and start the proxy
    my $proxy = HTTP::Proxy->new(@ARGV, agent => $ua);
    --
    Jedaï

  20. #20
    Membre averti
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Mai 2003
    Messages
    921
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Mai 2003
    Messages : 921
    Points : 449
    Points
    449
    Par défaut
    Citation Envoyé par Jedai
    J'aimerais bien voir le code.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    # create and start the proxy
    #my $proxy = HTTP::Proxy->new(@ARGV);
     
    #Gom
    use LWP::UserAgent;
    use Crypt::SSLeay;
     
    my $ua = LWP::UserAgent->new();
     
    $ua->proxy(['http', 'https'], 'http://mon_login:mon_pass@proxy.mycompany.com:8080/');
    # create and start the proxy
    my $proxy = HTTP::Proxy->new(@ARGV, agent => $ua);
    Citation Envoyé par Jedai
    Sauf que là tu n'appelle même pas env_proxy()
    Parce que je n'ai jamais eu à le faire dans mes autres scripts !

    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
    #!c:/perl/bin -w
     
    use strict; use warnings;
     
    use WWW::Mechanize;
     
    my $mech = WWW::Mechanize->new();
     
    # PROXY SUPPORT
    $ENV{HTTPS_PROXY} = 'http://proxy.mycompany.com:8080';
     
    # PROXY_BASIC_AUTH
    $ENV{HTTPS_PROXY_USERNAME} = 'mon_login';
    $ENV{HTTPS_PROXY_PASSWORD} = 'mon_pass';
     
    $mech->get('https://signin.ebay.fr/ws/eBayISAPI.dll?SignIn');
     
    print $mech->content();
    ... ni même à ajouter la déclaration de :

    Gôm
    Quand on n'a pas d'tête, on a ...

Discussions similaires

  1. HTTPS, Proxy web, et tracabilité
    Par easyzik dans le forum Sécurité
    Réponses: 12
    Dernier message: 04/10/2010, 12h38
  2. Web service, proxy et HTTPS
    Par eraim dans le forum Langage
    Réponses: 9
    Dernier message: 06/03/2007, 17h47
  3. [Débutant][HTTPS][Proxy] Récupération HTML
    Par jgavard dans le forum Entrée/Sortie
    Réponses: 2
    Dernier message: 06/11/2006, 11h06
  4. Création d'un robot web
    Par wassim_kh dans le forum Linux
    Réponses: 7
    Dernier message: 07/07/2006, 17h02
  5. Lecture d'un fichier sur le web (http)
    Par omeya4 dans le forum C++
    Réponses: 3
    Dernier message: 12/06/2006, 21h32

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