Site de connexion à l'aide de cURL

12

J'essaie de me connecter à partir de la ligne de commande cURL avec la commande

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

Et après cela, essayer d'accéder à la page intérieure en utilisant

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

Mais je suis redirigé vers une page d'erreur car je ne suis pas connecté.

Qu'est-ce qui me manque dans ma première commande pour qu'elle puisse maintenir la session? J'ai mon site Web hébergé localement

SAR
la source
même possible sur SO: stackoverflow.com/questions/12399087/…
Ciro Santilli 新疆 改造 中心 法轮功 六四 事件

Réponses:

15

Eh bien, vous devrez stocker les données de session dans un cookie. Vous pouvez utiliser -c cookie_filenamepour créer le cookie (ajoutez-le à votre commande de connexion). Et puis, pour les autres requêtes, vous pouvez lire à partir du cookie avec -b cookie_filename.

Par exemple:

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

MODIFIER :

Notez plusieurs fois que loginpagela page que vous ouvrez avec votre navigateur Web n'est pas celle où vous introduisez votre utilisateur et votre mot de passe. Vous devrez vérifier où le formulaire publie ces données (recherchez la <form>balise dans le code source et l' action=...attribut). Ainsi, par exemple, si vous souhaitez vous connecter à https://criticker.com , loginpagec'est https://www.criticker.com/authenticate.php et non https://www.criticker.com/signin.php , qui est celui que vous ouvrez avec votre navigateur.

Un plugin / extension de falsification pour votre navigateur peut vous aider à trouver la bonne loginpageet toutes les données qui y sont publiées (comme les champs de saisie cachés dans le formulaire).

Peque
la source
La séquence donnée de -s -c -d ne produit même pas de fichier cookie
SAR
C'était une grande aide, j'ai regardé à nouveau ma source et j'ai trouvé que ma demande allait à un contrôleur, puis j'ai modifié ma commande et cela a fonctionné pour moi.
SAR
Cela fonctionne bien pour HTTP, y a-t-il quelque chose que j'ai besoin de faire avec HTTPS
SAR
@SAR: vous rencontrez des problèmes avec les certificats. Peut-être que vous voulez juste utiliser -k. Voir curl --helppour plus d'informations ou rechercher sur Internet comment gérer les certificats. ;-)
Peque
1
Merci pour la grande aide ... Le problème avec ma boucle était: "Remarquez que la page de connexion n'est pas souvent la page que vous ouvrez avec votre navigateur Web où vous introduisez votre utilisateur et votre mot de passe." ... Merci!
Sambhav Pandey