• Publicidad

Hacer login en páginas HTTPS con PHP

Todo lo relacionado con lenguajes de programación distintos de Perl: PHP, Java, C++, Ruby, Python, etc.

Hacer login en páginas HTTPS con PHP

Notapor adrolmar » 2010-10-26 12:00 @542

Hola,
si me valido introduciendo usuario y contraseña en una página web se me muestra la página de usuario registrado, donde encuentro ciertos campos de interés (crédito, último acceso, etc). La cuestión es que trato de acceder a la página y obtener esos campos para tratarlos posteriormente en un script en PHP.

He probado mirando el URL que aparece en el campo 'action' en el formulario del código fuente y los campos que son enviados para la validación, para luego intentarlo con wget:
1) wget --save-cookies cookie --post-data ’user=usuario&password=contrasenya’ <url>
2) wget --load-cookies cookie -p <url/fichero/descargar>

o incluso con:
wget --save-cookies cookie --http-user=usuario --http-password=contrasenya <url/fichero/descargar>

Lo que me descarga el index.html.

También he estado mirando la documentación de PHP al respecto, incluso alguna vez tuve que montar una URL con diferentes campos GET para envío de SMS y cosas del estilo, pero esta vez me pierdo con el tema de la validación.

¿Alguna sugerencia?

Gracias por adelantado.
adrolmar
 

Publicidad

Re: Hacer login en páginas HTTPS con PHP

Notapor danimera » 2010-10-26 12:48 @575

No entiendo bien lo que deseas hacer, pero ¿ya probaste con
file_get_contents()?

Es una función con la cual se obtiene el contenido que regresa el archivo, puede ser
Sintáxis: [ Descargar ] [ Ocultar ]
Using php Syntax Highlighting
  1. <?php
  2. $homepage = file_get_contents('http://www.example.com/file.php?action=algo');
  3. echo $homepage;
  4. ?>
  5.  
Coloreado en 0.050 segundos, usando GeSHi 1.0.8.4
100% Telch - Perl Web Programming
Cali PerlMongers: http://cali.pm.org
Avatar de Usuario
danimera
Perlero frecuente
Perlero frecuente
 
Mensajes: 871
Registrado: 2005-06-23 19:02 @834
Ubicación: Colombia

Re: Hacer login en páginas HTTPS con PHP

Notapor adrolmar » 2010-10-26 15:01 @667

Hola de nuevo. Sí probé pero obtengo lo mismo que con el wget antes mencionado.

Básicamente necesitas validarte para poder entrar en la página de usuario registrado o, incluso en otro tipo de páginas (como las de proveedores de servicios), para obtener ficheros con tarifas y cosas del estilo.

¡Gracias de todas formas!
adrolmar
 

Re: Hacer login en páginas HTTPS con PHP

Notapor danimera » 2010-10-26 17:52 @786

Eso me parece a los WS (webservice)... bueno ni modos.

Una vez hice una función así en PHP para obtener información de un webservice en Perl que desarrollé, recuerdo que la función es :
con ella podía hasta pasar ficheros, xml, etc..

Sintáxis: [ Descargar ] [ Ocultar ]
Using php Syntax Highlighting
  1. public function sendData($direccion,$variables, $referido="") {
  2.                    global $_SERVER;
  3.                 //Desarmamos la URL definida en $dirección
  4.                    $infodeurl=parse_url($direccion);
  5.                 //En caso de que el parametro $referido no este definido, que coloque el documento actual
  6.                    if($referido=="") $referido=$_SERVER["SCRIPT_URI"];
  7.                 //Desglosamos las variables que se van a enviar
  8.                    foreach($variables as $key=>$valor)
  9.                         $valores[]=$key."=".urlencode($valor);
  10.                 //Convertimos las Variables desglosadas en una cadena de consulta
  11.                    $datos=implode("&",$valores);
  12.                 //En caso de que el puerto no esté definido en la url, utilizaremos por defecto el puerto 80
  13.                    if(!isset($infodeurl["port"]))  $infodeurl["port"]=80;
  14.                 //Creamos la Data que se enviara por medio del socket
  15.                    $retorno.="POST ".$infodeurl["path"]." HTTP/1.1\n";
  16.                    $retorno.="Host: ".$infodeurl["host"]."\n";
  17.                    $retorno.="Referer: $referer\n";
  18.                    $retorno.="Content-type: application/x-www-form-urlencoded\n";
  19.                    $retorno.="Content-length: ".strlen($datos)."\n";
  20.                    $retorno.="Connection: close\n";
  21.                    $retorno.="\n";
  22.                 //incluimos las variables en la data
  23.                    $retorno.=$datos."\n";
  24.                 //Conectamos al dominio especificado en la URL
  25.                    $fp = fsockopen($infodeurl["host"],$infodeurl["port"]);
  26.                 //le enviamos los datos
  27.                    fputs($fp, $retorno);
  28.                 //Sacamos el resultado linea a linea
  29.                    while(!feof($fp))
  30.                    {
  31.                           $resultado .= fgets($fp, 128);
  32.                    }
  33.                 //Cerramos la conexión con el servidor
  34.                    fclose($fp);
  35.                 //Y retornamos los datos.
  36.    return $resultado;
  37. }
Coloreado en 0.019 segundos, usando GeSHi 1.0.8.4
100% Telch - Perl Web Programming
Cali PerlMongers: http://cali.pm.org
Avatar de Usuario
danimera
Perlero frecuente
Perlero frecuente
 
Mensajes: 871
Registrado: 2005-06-23 19:02 @834
Ubicación: Colombia

Re: Hacer login en páginas HTTPS con PHP

Notapor adrolmar » 2010-10-29 06:09 @298

Hola de nuevo.

La cosa tiene que ser más sencilla... yo sólo quiero hacer login en una página pero en lugar de hacerlo con el navegador con la terminal de Linux o con PHP.

He continuado con el wget y de momento sólo consigo obtener la siguiente página a la validación si modifico fraudulenta y manualmente la cookie y le introduzco 'TRACKERID xxxxxxxxxx' (copiado desde la cookie generada al hacer la conexión mediante navegador). No sé el motivo por el que con el proceso:

1) wget --keep-session-cookies --save-cookies cookie.txt --post-data='user=usuario&pass=contrasenya' https://www.url.com/index.php?part=tplogin

2) wget --keep-session-cookies --save-cookies cookie.txt --load-cookies cookie.txt https://www.url.com/salida.php?form=profile

falla a menos que haga 'la trampa'.
adrolmar
 


Volver a Programación en general

¿Quién está conectado?

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