• Publicidad

Autologin en página con HTTPS

¿Apenas comienzas con Perl? En este foro podrás encontrar y hacer preguntas básicas de Perl con respuestas aptas a tu nivel.

Autologin en página con HTTPS

Notapor Skull118 » 2013-06-04 16:49 @742

Buenas tardes, maestros. Les comento: estoy realizando algo para poder realizar un autologin (algo así como lo que expone explorer al final de este artículo). He entendido la mayoría del código que ha expuesto, sin embargo he tratado de implementar el código pero en una conexión HTTPS que tiene errores con el certificado (ya logré omitir el error), sin embargo no he logrado llegar a registrarme y que me redireccione, solo me quedo en la página de index.php por lo que estoy leyendo.

Esto es lo que tengo.
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. use LWP::UserAgent;
  2. use HTTP::Cookies;
  3. use HTTP::Request::Common qw(POST);
  4. use IO::Socket::SSL qw();
  5. use WWW::Mechanize qw();
  6. #my $ua = LWP::UserAgent->new;
  7. my $ua = WWW::Mechanize ->new(ssl_opts => {
  8.     SSL_verify_mode => IO::Socket::SSL::SSL_VERIFY_NONE,
  9.     verify_hostname => 0, # this key is likely going to be removed in future LWP >6.04
  10. });
  11. #$ua->agent("Kidd 1.0 (http://perlenespanol.com/)");
  12.  
  13. #utilizare https://hotmail.com para ejemplificar lo que quiero expresar
  14.  
  15. my $url = "https://www.hotmail.com";
  16. #my $req = HTTP::Request->new(GET => $url);
  17.  
  18. # puse login_username y login_password debido a que estos campos son los que utiliza la página a la que me deseo loguear
  19.  
  20. my $req = POST 'https://www.hotmail.com',
  21.           [ login_username => 'prueba', login_password => 'prueba', login => 'Login' ];
  22. my $response = $ua->request($req);
  23. my $content = $response->content();
  24. print "Content-type: text/html\n\n";
  25. print $content;
  26.  
Coloreado en 0.004 segundos, usando GeSHi 1.0.8.4


Lo que necesito es registrarme y hacer un query hacia otra página vía URL (que ya tengo solucionado vía explorador), y el resultado HTML guardarlo en un archivo, para esto entiendo que necesito la cookie activa o estar registrado (que es lo mismo) pero no logro hacerlo, y luego el tema de escritura en archivo (que no representa problemas), pero no tengo la mas mínima idea de cómo hacerlo. Te agradeceré una mano, muchas gracias.
Skull118
Perlero nuevo
Perlero nuevo
 
Mensajes: 53
Registrado: 2013-03-21 13:38 @610

Publicidad

Re: Autologin en página con HTTPS

Notapor Skull118 » 2013-06-04 17:43 @779

Ya logré que me diera el 200 Ok. Supongo que es bueno (según tu explicación)

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1.  
  2. use LWP::UserAgent;
  3. use HTTP::Cookies;
  4. use HTTP::Request::Common qw(POST);
  5. use strict;
  6. use warnings;
  7. use LWP::UserAgent;
  8. use HTTP::Request;
  9. use IO::Socket::SSL qw();
  10. use WWW::Mechanize qw();
  11. my $ua = LWP::UserAgent->new(ssl_opts => {
  12.     SSL_verify_mode => IO::Socket::SSL::SSL_VERIFY_NONE,
  13.     verify_hostname => 0, # this key is likely going to be removed in future LWP >6.04
  14. });
  15. $ua->cookie_jar(HTTP::Cookies->new(file => "lwpcookies.txt", autosave => 1));
  16. my $req = POST 'https://mipagina.php/apartado/index.php',
  17.           [ login_username => 'LFranco', login_password => 'LFranco', login => 'Login' ];
  18.  
  19. my $res = $ua->request(
  20.     #La url desde un explorador devuelve varios resultados ingresada desde un explorador web
  21.     #Lo que necesito es tomar los <a href="urldealgunapagina"> XXXXX </a> y guardarlos en un archivo
  22.     #CON ESTA LÍNEA NO FUNCIONA ------------->   HTTP::Request->new(GET => 'https://mipagina.php/apartado/graph_view.php?predefined_timespan=0&date1=2013-05-19+00%3A00&date2=2013-05-25+23%3A59&predefined_timeshift=11')
  23.    
  24.     #CON ESTA SÍ DEVUELVE EL 200 OK
  25.     #       |
  26.     #       V
  27.     HTTP::Request->new(GET => 'https://mipagina.php/apartado/graph_view.php')
  28. );               
  29. print $res->status_line, "\n";
  30.  
  31.  
Coloreado en 0.002 segundos, usando GeSHi 1.0.8.4


Gracias de antemano.
Skull118
Perlero nuevo
Perlero nuevo
 
Mensajes: 53
Registrado: 2013-03-21 13:38 @610

Re: Autologin en página con HTTPS

Notapor explorer » 2013-06-04 18:15 @802

Yo no veo por ninguna parte lo de login_username dentro de esa página...
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Re: Autologin en página con HTTPS

Notapor Skull118 » 2013-06-05 08:43 @404

Entonces ¿podrías explicarme por favor cómo puedo hacerlo?, y le cambié el nombre de login_username debido a que así se llama el campo donde ingreso el usuario y el password por login_password.
Skull118
Perlero nuevo
Perlero nuevo
 
Mensajes: 53
Registrado: 2013-03-21 13:38 @610

Re: Autologin en página con HTTPS

Notapor explorer » 2013-06-05 10:28 @478

Yo no veo errores...

Cada página de entrada es un mundo... Saber los nombres de los campos del formulario -si es que realmente hay un formulario-, pegarse con el código JavaScript que está para validar los campos, impedir accesos automáticos, captchas, conexiones Ajax para comprobar la validez de lo ingresado, redirecciones que devuelve el servidor...

A veces es fácil, otras veces difícil, y otras, imposible.
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España


Volver a Básico

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 0 invitados

cron