• Publicidad

Crear peticiones GET via SSL

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

Crear peticiones GET via SSL

Notapor zkizzik » 2009-11-16 23:38 @026

Hola, estaba buscando la forma de hacer una petición GET a un sitio WEB determinado vía SSL y manipular el contenido.

Lo que sucede es que tengo un hosting que autoinstala paquetes pero necesito automatizar la creación de bases de datos y para eso necesito hacer tan solo una petición GET con mi autenticación en el header y listo, pero no sé cómo hacerlo ya que sólo puedo ingresar vía SSL.

Encontré por ahí un texto donde desde la línea de comandos puedes hacer una petición similar a la que haces con netcat pero con openssl:

openssl s_client -connect 255.255.255.255:443 -cipher EXP-RC4-MD5

Sí resulta, pero luego tengo que enviarle el buffer con toda la petición e intenté hacer para testear esto:

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. #!/usr/bin/perl
  2.  
  3. $comando = 'openssl s_client -connect mihost:443 -cipher EXP-RC4-MD5';
  4. $buffer =
  5. 'GET / HTTP/1.1
  6. connection: close
  7. host mihost
  8.  
  9. ';
  10.  
  11. system($comando."\n".$buffer);
Coloreado en 0.003 segundos, usando GeSHi 1.0.8.4


pero al ejecutarlo no envía el buffer y recién se ve cuando termina la conexión.

¿Hay alguna forma de hacer petición GET directamente desde Perl con algún módulo o lo que sea?

Gracias de antemano.
zkizzik
Perlero nuevo
Perlero nuevo
 
Mensajes: 18
Registrado: 2007-10-15 18:26 @810

Publicidad

Re: Crear peticiones GET via SSL

Notapor explorer » 2009-11-17 04:56 @247

Tanto si es SSL como si no, se pueden usar los paquetes de la distribución LWP para hacer las conexiones HTTP. LWP viene instalado de base con todos los Perl.

Según lwpcook, en la sección HTTPS, se deben dar una serie de condiciones. Debes leerte el fichero README.SSL, que, básicamente, lo que dice es que debes tener instalado el módulo IO::Socket::SSL, o mejor, el Crypt::SSLeay. También dice que, en lugar de usar LWP, recomienda usar el módulo Net::SSLeay, pues parece que es más completo para programación web.

Prueba primero con la familia LWP (por ejemplo, con LWP::Simple) que a lo mejor con eso te vale.
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Re: Crear peticiones GET via SSL

Notapor zkizzik » 2009-11-17 19:33 @856

Hola, intenté con esto:

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. #!/usr/bin/perl
  2.  
  3. use strict;
  4. use IO::Socket::SSL;
  5.  
  6. my $client = IO::Socket::SSL->new("host.de.prueba:https")
  7.  || warn "I encountered a problem: ".IO::Socket::SSL::errstr();
  8. $client->verify_hostname( 'host.de.prueba','http' )
  9.  || die "hostname verification failed";
  10.  
  11. print $client "GET / HTTP/1.0\r\n\r\n";
  12. print <$client>;
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4


Sintáxis: [ Descargar ] [ Ocultar ]
Using bash Syntax Highlighting
  1. yan@Lola:~/Escritorio$ perl ./cpan.pl
  2. Can't locate IO/Socket/SSL.pm in @INC (@INC contains: /etc/perl /usr/local/lib/perl/5.10.0 /usr/local/share/perl/5.10.0 /usr/lib/perl5 /usr/share/perl5 /usr/lib/perl/5.10 /usr/share/perl/5.10 /usr/local/lib/site_perl .) at ./cpan.pl line 4.
  3. BEGIN failed--compilation aborted at ./cpan.pl line 4.
  4. yan@Lola:~/Escritorio$
Coloreado en 0.002 segundos, usando GeSHi 1.0.8.4


Veo que no es nativo. No sé si después tenga problemas en mi servidor porque no puedo instalar módulos porque es un hosting semi-dedicado, o sea, sí puedo ejecutar cosas y tener acceso a la shell pero no puedo hacer instalaciones.

Probaré con LWP y te cuento qué tal me fue...

Sí fue buena idea pero ¿habrá alguna forma de manipular las cabeceras de wwwlib? Como por ejemplo tipo de conexión, cookie, user-agent, tipo de codificación de caracteres, etc.
zkizzik
Perlero nuevo
Perlero nuevo
 
Mensajes: 18
Registrado: 2007-10-15 18:26 @810

Re: Crear peticiones GET via SSL

Notapor explorer » 2009-11-17 19:46 @865

En el primer ejemplo de lwpcook tienes un ejemplo de modificación de las cabeceras.
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Re: Crear peticiones GET via SSL

Notapor zkizzik » 2009-11-17 23:01 @000

¡Genial! Ya lo solucioné, muchas gracias.
zkizzik
Perlero nuevo
Perlero nuevo
 
Mensajes: 18
Registrado: 2007-10-15 18:26 @810


Volver a Básico

¿Quién está conectado?

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