Ich versuche, mich von der cURL-Befehlszeile aus mit dem Befehl anzumelden
curl --data "Benutzername=Benutzer&Passwort=Passwort&Senden=Anmelden"http://www.ip.com:8080/LoginApplication/Login.jsp
Und danach versuchen, auf die innere Seite zuzugreifen mit
curl http://www.ip.com:8080/LoginApplication/Success.jsp
Aber ich werde auf eine Fehlerseite umgeleitet, weil ich nicht angemeldet bin.
Was fehlt mir in meinem ersten Befehl, damit die Sitzung aufrechterhalten werden kann? Ich habe meine Website lokal gehostet
Antwort1
Nun, Sie müssen die Sitzungsdaten in einem Cookie speichern. Sie können verwenden, -c cookie_filename
um das Cookie zu erstellen (fügen Sie dies Ihrem Anmeldebefehl hinzu). Und dann können Sie für die anderen Anfragen mit aus dem Cookie lesen -b cookie_filename
.
Zum Beispiel:
curl -s loginpage -c cookiefile -d "user=myself&pass=secure"
curl -s secretpage -b cookiefile
BEARBEITEN:
Beachten Sie, dass dies häufig loginpage
nicht die Seite ist, die Sie mit Ihrem Webbrowser öffnen, auf der Sie Ihren Benutzernamen und Ihr Passwort eingeben. Sie müssen überprüfen, wohin das Formular diese Daten sendet (suchen Sie <form>
im Quellcode nach dem Tag und dem action=...
Attribut). Wenn Sie sich beispielsweise beihttps://criticker.com, loginpage
Isthttps://www.criticker.com/authenticate.phpund nichthttps://www.criticker.com/signin.php, die Sie mit Ihrem Browser öffnen.
Ein Manipulations-Plugin/eine Manipulations-Erweiterung für Ihren Browser kann Ihnen dabei helfen, die richtigen loginpage
und alle Daten zu finden, die an ihn gesendet werden (wie z. B. versteckte Eingabefelder im Formular).