• Publicidad

Login request Post web

Todo lo relacionado con el desarrollo Web con Perl: desde CGI hasta Mojolicious

Login request Post web

Notapor jimr1984 » 2016-12-28 18:02 @793

Hola, estoy intentando registrarme vía POST.

Lo que realicé fue lo siguiente: tengo una cuenta en la página xxxx.com, user: pepito, pass: 123.

Realicé el registro vía web y capturé el tráfico utilizando un proxy y esta es la petición:

Sintáxis: [ Descargar ] [ Ocultar ]
Using text Syntax Highlighting
POST /appejemplo/cpuMovil/Login HTTP/1.1
Authorization: Basic Dk2NzNkZmIwN2U1MWEwZGZmYTc0NWE5MTAzOGU1NDgw
Content-Length: 33
Content-Type: application/x-www-form-urlencoded
Host: webservice.ejemplo.com.bo
Connection: Keep-Alive
User-Agent: Apache-HttpClient/UNAVAILABLE (java 1.4)

Username=pepito&Password=123
Coloreado en 0.000 segundos, usando GeSHi 1.0.8.4

Por seguridad los datos están cambiados. Este es mi código:
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. #!/usr/bin/perl
  2.  
  3.  
  4.  
  5. use strict;
  6. use warnings;
  7.  
  8. use LWP::UserAgent;
  9. use HTTP::Cookies;
  10. use HTTP::Request;
  11.  
  12.  
  13.  
  14. #conecto a la 1ra url y guardo cookies  sin https
  15.  
  16.  
  17. my $url = "http://webservice.ejemolo.com.bo/appejemplo/cpuMovil/Login";
  18.  
  19.  
  20. my $datos = "Username=pepito&Password=123";
  21.  
  22.  
  23. my $ua = LWP::UserAgent->new();
  24.  
  25. my $cookies = HTTP::Cookies->new(
  26.     file     => 'COOKIES.dat',
  27.     autosave => 1,
  28. );  
  29.  
  30. $ua->cookie_jar($cookies);
  31. $ua->timeout(30);
  32. $ua->agent("Apache-HttpClient/UNAVAILABLE (java 1.4)");
  33.  
  34.  
  35. my $reqw = HTTP::Request->new(POST => $url);
  36. $reqw->content_type('application/x-www-form-urlencoded');
  37. $reqw->content($datos);
  38.  
  39. my $responsew = $ua->request($reqw);
  40. my $contentw = $responsew->content(); #contenido de la respuesta
  41.  
  42. print $contentw;
  43.  
Coloreado en 0.002 segundos, usando GeSHi 1.0.8.4

y la respuesta es: "Message":"Se ha denegado la autorizaci├│n para esta solicitud."

Siendo que los datos están correctos estoy suponiendo que el problema está en la petición ya que vía web se registra sin problemas.

Por eso es que pensé en utilizar la petición capturada con el proxy.

Quizás una alternativa sería guardar la petición en archivo, luego leerlo y enviarlo. No sé, por decir algo. Aguardo si me pueden ayudar. Muchas gracias.

Saludos.
jimr1984
Perlero nuevo
Perlero nuevo
 
Mensajes: 123
Registrado: 2012-11-25 07:11 @341

Publicidad

Re: Login request Post web

Notapor explorer » 2016-12-28 20:23 @891

Pero es que no sabemos realmente cómo se hace la autenticación. Podría haber código JavaScript que hiciera una comprobación. Los datos de la Authorization: Basic podrían ser dependientes de muchas cosas, no solo del nombre de usuario y contraseña. Quizás el servidor web haga una comprobación de la dirección anterior de donde proviene la petición (lo que en el registro de actividad web llamamos Referer).

Yo, lo que sí haría es no usar content() para añadir el nombre de usuario y contraseña. Usaría algo como esto:
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. $ua->request(
  2.         POST $url,
  3.         [ Username => 'pepito', Password => '123'],
  4. );
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4
(sacado de HTTP::Request::Common) Además, queda un poco más claro.

¡Ojo! En la petición no va el campo Authorization. Si es obligatorio, mejor hacerlo así:
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. $ua->request(
  2.         POST $url,
  3.         Authorization => 'Basic Dk2NzNkZmIwN2U1MWEwZGZmYTc0NWE5MTAzOGU1NDgw',
  4.         Content => [ Username => 'pepito', Password => '123'],
  5. );
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4

Fíjate a ver si el valor de Authorization cambia con cada petición. Podría estar almacenando el valor de la sesión, por lo que será obligatorio usarlo.
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: Login request Post web

Notapor programadorCO » 2019-04-23 17:19 @763

Hola, estoy realizando algo similar y me arroja el siguiente error
Free to wrong pool e57d50 not 9202ff007e25b6af at C:/Perl64/lib/IO/Socket/SSL.pm line 2739.
¿A qué se debe este error? Gracias por su ayuda.
Avatar de Usuario
programadorCO
Perlero nuevo
Perlero nuevo
 
Mensajes: 15
Registrado: 2018-03-28 16:20 @722
Ubicación: Bogotá, Colombia

Re: Login request Post web

Notapor explorer » 2019-04-23 19:18 @846

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: Login request Post web

Notapor programadorCO » 2019-04-24 13:15 @594

Hola, explorer.

Según indican el error se corrigió para la versión 1.85 del módulo Net::SSLeay.

Aquí indican la solución que se iba a implementar en la última versión:

https://rt.cpan.org/Public/Bug/Display. ... xn-1795167

Descargué la última versión de Net::SSLeay pero no me funciona. Ahí hablan sobre un parche pero no sé cómo adecuarlo.
Avatar de Usuario
programadorCO
Perlero nuevo
Perlero nuevo
 
Mensajes: 15
Registrado: 2018-03-28 16:20 @722
Ubicación: Bogotá, Colombia

Re: Login request Post web

Notapor explorer » 2019-04-25 14:29 @645

Según la página de MetaCPAN, sí que está ahí la versión 1.85 de Net-SSLeay, y además pone exactamente que está corregido ese error.

O no te has bajado esa versión o no la has instalado bien.

Mira. Esto lo he ejecutado en mi computadora:

Sintáxis: [ Descargar ] [ Ocultar ]
Using text Syntax Highlighting
> perl -MNet::SSLeay -E 'say $Net::SSLeay::VERSION'
1.85
Coloreado en 0.000 segundos, usando GeSHi 1.0.8.4
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: Login request Post web

Notapor programadorCO » 2019-04-25 20:03 @877

Ya logré que funcione. Ahora cuando intento adjuntar un archivo me sale este error:
Sintáxis: [ Descargar ] [ Ocultar ]
Using text Syntax Highlighting
400 URL missing
Coloreado en 0.000 segundos, usando GeSHi 1.0.8.4


El llamado al servicio lo realizo así:

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. $request = HTTP::Request->new(POST $url, Content_Type => 'multipart/form-data', Content => [ file => [$file_path]]);
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4

¿Qué puede estar pasando?

Cuando lo realizo con este otro código funciona pero me sale error del pendiente del archivo.
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. $request = HTTP::Request->new('POST', $url, $header, $encoded_data);
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4



Gracias por su apoyo.
Avatar de Usuario
programadorCO
Perlero nuevo
Perlero nuevo
 
Mensajes: 15
Registrado: 2018-03-28 16:20 @722
Ubicación: Bogotá, Colombia

Re: Login request Post web

Notapor explorer » 2019-04-26 04:34 @232

Te falta un '=>' después de 'POST'.

O una coma (tiene el mismo efecto).
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: Login request Post web

Notapor programadorCO » 2019-04-26 08:04 @377

Al poner la ',' o '=>' me sale este mensaje
Sintáxis: [ Descargar ] [ Ocultar ]
Using text Syntax Highlighting
Bad header argument
Coloreado en 0.000 segundos, usando GeSHi 1.0.8.4
Avatar de Usuario
programadorCO
Perlero nuevo
Perlero nuevo
 
Mensajes: 15
Registrado: 2018-03-28 16:20 @722
Ubicación: Bogotá, Colombia

Re: Login request Post web

Notapor explorer » 2019-04-29 14:59 @666

Veamos el código que estás probando...
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

Siguiente

Volver a Web

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 1 invitado