Iniciar sesión en el sitio usando cURL

12

Estoy tratando de iniciar sesión desde la línea de comando cURL con el comando

curl --data "username = user & password = pass & submit = Login" http://www.ip.com:8080/LoginApplication/Login.jsp

Y después de eso tratando de acceder a la página interna usando

curl http://www.ip.com:8080/LoginApplication/Success.jsp

Pero me redirigen a la página de error debido a que no he iniciado sesión.

¿Qué me falta en mi primer comando para que pueda mantener la sesión? Tengo mi sitio web alojado localmente

SAR
fuente
posible mismo en SO: stackoverflow.com/questions/12399087/…
Ciro Santilli 新疆 改造 中心 法轮功 六四 事件

Respuestas:

15

Bueno, deberás almacenar los datos de la sesión en una cookie. Puede usar -c cookie_filenamepara crear la cookie (agregue esto a su comando de inicio de sesión). Y luego, para las otras solicitudes, puede leer la cookie con -b cookie_filename.

Por ejemplo:

curl -s loginpage -c cookiefile -d "user=myself&pass=secure"
curl -s secretpage -b cookiefile

EDITAR :

Observe que muchas veces loginpageno es la página que abre con su navegador web donde introduce su usuario y contraseña. Tendrá que verificar dónde está publicando el formulario esos datos (busque la <form>etiqueta en el código fuente y el action=...atributo). Entonces, por ejemplo, si desea iniciar sesión en https://criticker.com , loginpagees https://www.criticker.com/authenticate.php y no https://www.criticker.com/signin.php , cuál es el que abres con tu navegador.

Un complemento / extensión de manipulación para su navegador puede ayudarlo a encontrar la información correcta loginpagey todos los datos que se le están publicando (como campos de entrada ocultos en el formulario).

Peque
fuente
La secuencia dada de -s -c -d ni siquiera produce un archivo cookie
SAR
Fue de gran ayuda, volví a mirar mi fuente y descubrí que mi solicitud iba a un controlador y luego modifiqué mi comando y funcionó para mí.
SAR
Esto funciona bien para HTTP, ¿hay algo que necesite hacer más con HTTPS
SAR
@SAR: tiene problemas con los certificados. Tal vez solo quieras usar -k. Consulte curl --helppara obtener más información o busque en Internet cómo manejar los certificados. ;-)
Pequeño
1
Gracias por la gran ayuda ... El problema con mi curl fue: "Tenga en cuenta que muchas veces la página de inicio de sesión no es la página que abre con su navegador web donde introduce su usuario y contraseña" ... ¡Gracias!
Sambhav Pandey