• Publicidad

Envío de cookies

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

Envío de cookies

Notapor jimr1984 » 2014-09-18 11:23 @516

Buenos días.

Antes que nada, agradecer por permitirme ser parte de esta comunidad.

Paso a explicar mi problema y agradeciendo su pronta respuesta y todas las ayudas. MUCHAS GRACIAS.

El proceso es el siguiente:

pág. ejemplo : http://www.miweb.com
pág. otra : http://www.otra.com
navegador : firefox

Procedimiento:

Al acceder con el navegador a http://www.miweb.com revisando las cookies se crean las cookies de miweb y otra.com con los siguientes datos:

Sintáxis: [ Descargar ] [ Ocultar ]
Using text Syntax Highlighting
Host:                 .miweb.com
Name:                 _ga
Path:                 /
Content:              GA1.3.1692531137.1411055864
Content raw:          GA1.3.1692531137.1411055864
Expires:              Saturday, September 17, 2016 12:10:47 AM
Expires raw:          1474085447
Send for:             Cualquier tipo de conexión
Send for raw:         false
Created:              Thursday, September 18, 2014 11:57:45 AM
Created raw:          1411055864717000
Last accessed:        Thursday, September 18, 2014 12:20:51 AM
Last accessed raw:    1411014050608000
HTTP only:            No
HTTP only raw:        false
This domain only:     Yes
This domain only raw: true
Policy:               no information available
Policy raw:           0
Status:               no information available
Status raw:           0
---

Host:                 otra.com
Name:                 AWSELB
Path:                 /
Content:              47292F3B1ABE6284EA92626CE03FD9D94424CDF5A4627A5CEC906B4674351497DC440E7C597CBCE17E4D906FC42057207075547C1ED87DB32EAC241D0A03ABE30D551A3D56
Content raw:          47292F3B1ABE6284EA92626CE03FD9D94424CDF5A4627A5CEC906B4674351497DC440E7C597CBCE17E4D906FC42057207075547C1ED87DB32EAC241D0A03ABE30D551A3D56
Expires:              Al finalizar la sesión
Expires raw:          0
Send for:             Cualquier tipo de conexión
Send for raw:         false
Created:              Thursday, September 18, 2014 11:57:50 AM
Created raw:          1411055870490000
Last accessed:        Thursday, September 18, 2014 11:59:24 AM
Last accessed raw:    1411055963502000
HTTP only:            No
HTTP only raw:        false
This domain only:     No
This domain only raw: false
Policy:               no information available
Policy raw:           0
Status:               no information available
Status raw:           0
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4

En mi página miweb.com tengo un botón que al presionarlo muestra un mensaje pero no permite mostrar más de una vez.
Tengo que ingresar a eliminar las cookies de miweb.com para volver a mostrar el mensaje.
Cuando se presiona el botón se realiza un GET a un php: mensaje.php?prueba=saludo

Revisando las cabeceras que se envían me di cuenta de que se pasa de la siguiente manera. Capturando la traza es la siguiente:

Sintáxis: [ Descargar ] [ Ocultar ]
Using text Syntax Highlighting
http://www.otra.com/poll?jsoncallback=jQuery1102048040872619620156_1411014391272&multResp=0&pollId=541657fde4b09149347df610&pollKey=Dqjx155&command=saveResponse&_=1411014391274

GET /poll?jsoncallback=jQuery1102048040872619620156_1411014391272&multResp=0&pollId=541657fde4b09149347df610&pollKey=Dqjx155&command=saveResponse&_=1411014391274 HTTP/1.1
Host: http://www.otra.com
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:32.0) Gecko/20100101 Firefox/32.0
Accept: */*
Accept-Language: es-ES,es;q=0.8,en-US;q=0.5,en;q=0.3
Accept-Encoding: gzip, deflate
Referer: http://miweb.com/
Cookie: AWSELB=47292F3B1ABE6284EA92626CE03FD9D94424CDF5A4627A5CEC906B4674351497DC440E7C597CBCE17E4D906FC42057207075547C1ED87DB32EAC241D0A03ABE30D551A3D56
Connection: keep-alive
Coloreado en 0.000 segundos, usando GeSHi 1.0.8.4


Lo que me di cuenta es que la cookie de otra.com siempre es así:
Sintáxis: [ Descargar ] [ Ocultar ]
Using text Syntax Highlighting
Cookie: AWSELB=47292F3B1ABE6284EA92626CE03FD9D94424CDF5A4627A5CEC906B4674351497DC440E7C597CBCE17E4D906FC42057207075547C1ED87DB32EAC241D0A03ABE30D551A3D56
Coloreado en 0.000 segundos, usando GeSHi 1.0.8.4

y al momento de presionar el botón que está dentro de miweb.com se envía ese valor de la cookie AWSELB.

Bien, ese es el procedimiento. Hasta aquí, todo está perfecto.

El tema está:
  • cómo debo capturar la cookie de ambos sitios
  • cómo denegar la cookie de uno de los sitios
  • cómo capturar la cookie de otra.com y realizar una petición GET y enviarla en la petición la cookie
  • tengo entendido que con Mechanize es posible
  • ¿¿Necesito capturar las cookies?? ¿O crear las cookies con esos valores?
  • generalmente las peticiones yo las realizo con LWP::Simple o LWP::Request
Última edición por explorer el 2014-09-19 10:56 @497, editado 2 veces en total
Razón: sgte => siguiente
jimr1984
Perlero nuevo
Perlero nuevo
 
Mensajes: 123
Registrado: 2012-11-25 07:11 @341

Publicidad

Re: Envío de cookies

Notapor explorer » 2014-09-18 12:38 @568

Mechanize puede obtener ese recurso, y ocuparse de forma automática de la gestión de las galletas.

El problema es que el recurso que recibe, no se ejecuta (en caso de que necesite Javascrypt).

Entonces, si la pulsación del botón lanza un JavaScrypt que hace la petición a otra.com, eso ya no lo sabe hacer Mechanize. Sí que podría hacerlo si se tratase de un enlace directo a ese recurso.

Pero esto, quizás, te puede convenir: si no se realiza la conexión a otra.com, nunca recibes su galleta.

Hay otros módulos Mechanize que sí permiten un control más amplio, e incluso manejar el Firefox a distancia.

Hay que recordar que la admisión de galletas es un acto aprobado voluntariamente por el usuario. Eso quiere decir que si no queremos, nuestro navegador no admitirá ninguna galleta.

Es más: en el Firefox existe la opción de no admitir galletas de terceros, así que no admitirá la galleta de otra.com si está en miweb.com... salvo que pulses el botón: el hacerlo es un acto voluntario del usuario, así que le estás dando permiso para recibir las galletas de otra.com.

En casos extremos, lo mejor es no admitir ninguna galleta de forma explícita, y que sea el navegador el que nos pregunte si la aceptamos o no.

El caso es que casi nadie lo hace, porque hay páginas que te inundan con docenas de galletas, y no te vas a pasar media vida aceptando o denegando, aparte de que en la mayor parte de las ocasiones no sabes para qué son (esto ha cambiado recientemente a nivel Europeo en donde se obliga a los sitios web a informar a los usuarios del propósito de cada una de las galletas que van a instalar, so pena de recibir una fuerte multa).

Hay extensiones en los navegadores, que ayudan a filtrar las galletas, indicándolas en listas blancas (permitidas) o negras (no permitidas).
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

Leer valores de la cookie

Notapor jimr1984 » 2014-09-19 09:23 @433

Buenos días, estimados.

Continuando con el tema de cookies en el trabajo que estoy realizando,
por favor necesitaría su colaboración para el siguiente problema.

Mediante Perl realizo una petición GET o abriendo directamente en el navegador

http://xxxxxxxxxxxxxxxxxxxxxxxxxxxx.com ... xxxxxxxxxx

me genera dos cookies con nombre OPPCookieTest con valor true, y OPP5546545 con valor true.

¿Cómo puedo leer los valores de las cookies y cómo puedo saber qué cookies me generó una petición o visita a una web?

Por favor, si puede ayudarme, gracias...

Capturar los valores o leerlos.
Última edición por explorer el 2014-09-19 09:59 @457, editado 1 vez en total
Razón: sgte => siguiente
jimr1984
Perlero nuevo
Perlero nuevo
 
Mensajes: 123
Registrado: 2012-11-25 07:11 @341

Re: Envío de cookies

Notapor explorer » 2014-09-19 10:50 @493

El método cookie_jar() de LWP::UserAgent da acceso a poner o leer cuál es la jarra de galletas actual. La forma de usarlo está descrita en la sinopsis de HTTP::Cookies.

Luego, con el método scan() de HTTP::Cookies puedes leer el contenido de la jarra de galletas.

Atención: para que esto funcione, debe existir una jarra de galletas, y como dice LWP::UserAgent, la jarra, por defecto, no se crea, así que hay que crearla antes de la conexión.

Mechanize hereda todos estos métodos, así que también se pueden usar desde él. Aquí, un ejemplo. Y otro más, volcando la jarra como si fuera una cadena de texto.
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: Envío de cookies

Notapor jimr1984 » 2014-09-19 16:48 @742

Muchas gracias por tus prontas respuestas, amigo.
He solucionado mi problema.
Muchas gracias a todos.
jimr1984
Perlero nuevo
Perlero nuevo
 
Mensajes: 123
Registrado: 2012-11-25 07:11 @341


Volver a Web

¿Quién está conectado?

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