webentwicklung-frage-antwort-db.com.de

So geben Sie Anmeldeinformationen für eine Website über die Linux-Befehlszeile ein

Meine Internetverbindung wird von der Universität bereitgestellt. Es ist durch eine Kombination aus Benutzername und Passwort geschützt. Das bedeutet, wenn ich meinen Computer starte, muss ich einen Webbrowser starten und eine beliebige Website öffnen. Ich werde dann auf eine Seite weitergeleitet, die (unter anderem) zwei Formulare enthält. In diesen muss ich Benutzername und Passwort eingeben. Ich habe das mit Firefox geschafft (der das Passwort speichern kann) und auch mit Links (die schneller und von der Kommandozeile geladen werden).

Gibt es eine Möglichkeit, den Anmeldevorgang mithilfe eines Bash-Skripts zu automatisieren? Dies würde die Anmeldung beim Booten ermöglichen, so dass sie beim Starten des X-Servers bereits vorhanden ist.

24
Tim

Ich habe endlich eine Möglichkeit gefunden, mich automatisch mit elinks anzumelden. Es funktioniert und es ist sogar einfach zu konfigurieren!

Es müssen zwei Optionen festgelegt werden. Dies kann durch Hinzufügen der folgenden Zeilen in ~/.elinks/elinks.conf (falls die Datei nicht vorhanden ist, erstellen Sie eine) oder durch Ändern der Werte an den entsprechenden Positionen im Optionsdialog in elinks erfolgen:

    # Save username and password for later use
set document.browse.forms.show_formhist = 1
    # Do not ask for confirmation before a form is submitted
set document.browse.forms.confirm_submit = 0

Schritte für ein skriptfähiges Autologin sind dann:

  • Stellen Sie diese beiden Optionen ein
  • Öffnen Sie die Anmeldeseite in elinks, füllen Sie die Formulare aus und senden Sie sie ab.
  • Wählen Sie diese Option, um den Namen und das Kennwort für die spätere Verwendung zu speichern.
  • Schließen Sie Elinks
  • elinks -auto-submit http://somesite.com ausführen

Letzterer Befehl sollte die automatische Anmeldung ohne weitere Benutzerinteraktion durchführen.

Ich verwende eigentlich timeout 1m elinks -auto-submit http://somesite.com &, so dass kein Leerlaufprozess im Hintergrund ausgeführt wird.

5
Tim

Sie können es mit curl ausprobieren. Sie können einfach curl wie folgt verwenden, um sich auf der Webseite anzumelden:

curl --user name:password http://somesite.com -v 

Sie können Daten von Stackoverflow answer an eine Website wie diese übergeben

    curl -b cookies.txt -c cookies.txt --data "Username=xx&Password=xx&Login=Login" [urlthatyour form submits]

sie benötigen Cookies, wenn Sie nach dem Anmelden eine weitere Lockanfrage stellen möchten. Die Sitzungs-ID in Cookies hilft bei der nächsten autorisierten Lockanfrage.

Wenn Sie keine Cookies möchten, können Sie verwenden

curl --data "Username=xx&Password=xx&Login=Login" [url that your form submits]

Sie können auch hier für Sonderbefehle verweisen

Ein einfacher Weg, dies zu skripten, ist mit Selen .

Sie können das Firefox-Plugin "Test Recorder" verwenden, um einen Test Ihrer Anmeldung im Netzwerk aufzuzeichnen und den Test dann wiederzugeben.

3
Moshe Katz

Sie können ein Add-On für Ihren Browser erwerben, das sich automatisch bei Websites mit gespeicherten Passwörtern anmeldet. Ich habe AutoAuth mit Firefox verwendet. Dann melden Sie sich einmal an und speichern Ihre Anmeldeinformationen. Dann schreiben Sie ein Skript, das nur hat

#!/bin/bash
firefox https://website address goes here

Wenn es ausgeführt wird, geht es los und es erfolgt eine automatische Anmeldung. Ich habe es mit mehreren Sites versucht und es hat gut funktioniert.

Ja, es gibt eine sehr einfache Möglichkeit, sich im Internet Ihrer Universität anzumelden. Sie können den Webbrowser ' Lynx ' verwenden, bei dem es sich um einen textbasierten Browser handelt. Gebrauch am Terminal. Also, hier ist der Weg:

$ echo "username=myname&password=mypassword" | lynx "url of the form" -post_data

dabei ist ' Benutzername ' der Name des Felds, das dem Benutzernamen in der Form entspricht, und ' Passwort 'ist der Name des Feldes, das dem Passwort Feld entspricht, und' Mein Name 'und' mypassword 'sind die entsprechenden Werte, die in das Formular eingegeben werden müssen. Sie können den Feldnamen mithilfe von "Element überprüfen" in jedem Browser suchen. Ich habe es mit Locken versucht, wie in der Antwort von BlueBerry - Vignesh4303 angegeben, aber es hat nicht funktioniert.

0
Kushagra Sharma