GNU/Linux >> LINUX-Kenntnisse >  >> Linux

CURL, um auf eine Seite zuzugreifen, die eine Anmeldung von einer anderen Seite erfordert

Vielleicht möchten Sie sich auch über den Browser anmelden und den Befehl mit allen Headern einschließlich Cookies erhalten:

Öffnen Sie die Registerkarte "Netzwerk" der Entwicklertools, melden Sie sich an, navigieren Sie zur gewünschten Seite und verwenden Sie "Als cURL kopieren".


Die Website verwendet wahrscheinlich Cookies, um Ihre Sitzungsinformationen zu speichern. Beim Laufen

curl --user user:pass https://xyz.example/a  #works ok
curl https://xyz.example/b #doesn't work

curl wird zweimal in zwei getrennten Sitzungen durchgeführt. Wenn also der zweite Befehl ausgeführt wird, sind die vom ersten Befehl gesetzten Cookies nicht verfügbar; es ist genauso, als ob Sie sich auf Seite a angemeldet hätten in einer Browsersitzung und versuchte, auf die Seite b zuzugreifen in einem anderen.

Was Sie tun müssen, ist speichern die durch den ersten Befehl erstellten Cookies:

curl --user user:pass --cookie-jar ./somefile https://xyz.example/a

und lesen Sie sie dann wieder ein, wenn Sie die zweite ausführen:

curl --cookie ./somefile https://xyz.example/b

Alternativ können Sie versuchen, beide Dateien mit demselben Befehl herunterzuladen, der meiner Meinung nach dieselben Cookies verwendet.


Nach einigem googeln habe ich das hier gefunden:

curl -c cookie.txt -d "LoginName=someuser" -d "password=somepass" https://oursite/a
curl -b cookie.txt https://oursite/b

Keine Ahnung, ob es funktioniert, aber es könnte Sie in die richtige Richtung führen.


Linux
  1. Wie verwende ich Sftp auf einem System, das Sudo für Root-Zugriff und SSH-Schlüssel-basierte Authentifizierung benötigt?

  2. Awk aus verschiedenen Linien?

  3. Greifen Sie von einem anderen Thread auf Thread-lokal zu

  4. Messen Sie den Datenverkehr aus dem Apache-Zugriffsprotokoll

  5. Erstellen Sie wget-Download-Seitenressourcen auf einer anderen Domain

mimipenguin – Dump Login-Passwörter von aktuellen Linux-Benutzern

Verschiedene Möglichkeiten für den Zugriff auf Google Drive auf Linux Desktop

6 Funktionen, die Windows 10 von Linux übernommen hat

So greifen Sie von Windows 10 auf Linux-Partitionen zu

RabbitMQ - Abrufen von Nachrichten aus einer Warteschlange mit Curl

Auf welche verschiedenen Arten kann eine Nachricht in einer Bash-Shell angezeigt werden, nachdem sich ein Benutzer angemeldet hat?