Saltar al contenido

Guardar cookies entre dos solicitudes de curl

Solución:

Utilizar el --cookie-jar o --dump-header parámetro para guardar las cookies recibidas en un archivo. los --cookie El parámetro puede leer las cookies de ese archivo más tarde.

-b, – galleta

(HTTP) Pasa los datos al servidor HTTP como una cookie. Supuestamente son los datos recibidos previamente del servidor en una línea “Set-Cookie:”. Los datos deben tener el formato “NOMBRE1 = VALOR1; NOMBRE2 = VALOR2”.

Si no se usa el símbolo ‘=’ en la línea, se trata como un nombre de archivo que se usa para leer las líneas de cookies almacenadas previamente de, que debe utilizarse en esta sesión si coinciden. El uso de este método también activa el motor de cookies que hará que curl registre las cookies entrantes también, lo que puede ser útil si lo usa en combinación con la opción -L, –location. El formato de archivo del archivo para leer las cookies debe ser encabezados HTTP simples (estilo Set-Cookie) o el formato de archivo de cookies de Netscape / Mozilla.

El archivo especificado con -b, –cookie solo se usa como entrada. No se escribirán cookies en el archivo. Para almacenar cookies, use la opción -c, –cookie-jar.

Tenga cuidado si está usando esta opción y pueden ocurrir múltiples transferencias. Si usa NAME1 = VALUE1; o en un archivo use el formato Set-Cookie y no especifique un dominio, entonces la cookie se envía para cualquier dominio (incluso después de que se sigan las redirecciones) y no puede ser modificada por una cookie configurada por el servidor. Si el motor de cookies está habilitado y un servidor establece una cookie con el mismo nombre, ambos se enviarán en una transferencia futura a ese servidor, probablemente no lo que usted pretendía. Para abordar estos problemas, establezca un dominio en Set-Cookie (al hacerlo, se incluirán subdominios) o use el formato Netscape.

Si esta opción se usa varias veces, se usará la última.

-c, – tarro de galletas

(HTTP) Especifique en qué archivo desea que curl escriba todas las cookies después de completar la operación. Curl escribe todas las cookies leídas previamente de un archivo específico, así como todas las cookies recibidas de servidores remotos. Si no se conocen cookies, no se escribirán datos. El archivo se escribirá utilizando el formato de archivo de cookies de Netscape. Si establece el nombre del archivo en un solo guión, “-“, las cookies se escribirán en stdout.

Esta opción de línea de comando activará el motor de cookies que hace que curl registre y use cookies. Otra forma de activarlo es usar la opción -b, –cookie.

Si no se puede crear o escribir en el tarro de cookies, toda la operación de curl no fallará ni siquiera informará un error con claridad. El uso de -v mostrará una advertencia, pero esa es la única retroalimentación visible que obtiene sobre esta situación posiblemente letal.

Desde 7.43.0, las cookies que se importaron en el formato Set-Cookie sin un nombre de dominio no se exportan con esta opción.

Si esta opción se usa varias veces, se usará el último nombre de archivo especificado.

-D, –dump-header

Escribe los encabezados del protocolo en el archivo especificado.

Esta opción es útil cuando desea almacenar los encabezados que le envía un sitio HTTP. Las cookies de los encabezados podrían leerse en una segunda invocación de curl utilizando la opción -b, –cookie. La opción -c, –cookie-jar es una mejor manera de almacenar cookies.

Cuando se utiliza en FTP, las líneas de respuesta del servidor FTP se consideran “encabezados” y, por lo tanto, se guardan allí.

Si esta opción se usa varias veces, se usará la última

Alternativamente, en lugar de usar la aplicación cURL de línea de comandos, escriba algún código que use la biblioteca libCurl. Eso le dará un control más directo sobre el manejo de cookies. libCurl tiene varias características relacionadas con las cookies HTTP:

Opciones para curl_easy_getinfo():

  • CURLINFO_COOKIELIST: obtener todas las cookies conocidas

Opciones para curl_easy_setopt():

  • CURLOPT_COOKIE: establece el contenido del encabezado de la cookie HTTP

  • CURLOPT_COOKIEFILE – nombre de archivo para leer las cookies

  • CURLOPT_COOKIEJAR – nombre de archivo para almacenar cookies

  • CURLOPT_COOKIESESSION – iniciar una nueva sesión de cookies

  • CURLOPT_COOKIELIST: agregar o manipular las cookies almacenadas en la memoria

Luego, puede almacenar las cookies como desee y asignarlas según sea necesario a sesiones HTTP posteriores.

curl -b cookie.txt -c cookie.txt <url> o curl --cookie cookie.txt --cookie-jar cookie.txt <url> almacenará y enviará las cookies guardadas.

Me gustaría agradecer a todos los que están aquí por ayudarme a encontrar una solución para iniciar sesión en mi sitio de wordpress usando CURL. Esta es mi pequeña contribución, espero que también ayude a alguien que se encuentre con esto en el futuro.

Para Windows 10 compilado más nuevo que 1706, puede usar curl desde la línea de comando.

curl -c c:Users<your-name>Desktopcookie.txt -F "log=<your username>" -F "pwd=<your-pwd>" https://acme.net/wp-login.php

no verá ninguna respuesta en su terminal. simplemente se actualiza, pero su cookie ya está almacenada.

luego escriba lo siguiente para leer y enviar las cookies que acaba de almacenar.

curl -b c:Users<your-name>Desktopcookie.txt -L https://acme.net/my-profile/

toda la página web a la que solo deben acceder los usuarios registrados se mostrará dentro de su terminal, incluidos los datos que se cargan dinámicamente a través de javascript.

Incluso si el punto final de su URL de inicio de sesión de WP es ‘/ register / log-in’ o ‘/ login’, le recomiendo que utilice ‘/wp-login.php’ como punto final. Esto se debe a que algunos temas de WP tienen un nombre de inicio de sesión en una entrada oculta en su página de inicio de sesión. La página de inicio de sesión de WP nativa no tiene esto.

otras fuentes a las que puede hacer referencia:

Login to WordPress Dashboard via cURL

https://gist.github.com/subfuzion/08c5d85437d5d4f00e58

https://makandracards.com/makandra/48262-how-to-use-cookies-with-curl

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *