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

25

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.

Tim
quelle
1
Sie könnten in der Lage von der der Form der Login - Skript aufrufen ACTIONAttribut mit curldirekt.
Terdon
Viele Universitäten bieten auch ein Netzwerk an, das "Enterprise Authentication" verwendet (dh einen Benutzernamen / ein Kennwort für die Netzwerkverbindung selbst verwendet, anstatt zu warten, bis Sie versuchen, auf eine Seite zuzugreifen, um nach Anmeldeinformationen zu fragen). Die Möglichkeit, solche Netzwerkanmeldeinformationen zu speichern, ist im Betriebssystem integriert. Es ist auch viel sicherer, weil es für andere schwieriger ist, Ihre Verbindung zu überwachen. Wenn Ihre Universität dies unterstützt, sollten Sie zu ihr wechseln.
Moshe Katz
Es würde uns auch helfen, wenn Sie ein (anonymisiertes) Beispiel für die URL angeben könnten, zu der Sie beim Anmelden weitergeleitet werden. (Anonymisiert bedeutet hier, dass Sie Ihre MAC-Adresse und / oder IP-Adresse von der URL entfernen sollten, wenn diese vorhanden sind. aber lass alles andere, einschließlich des Namens der Universität.)
Moshe Katz

Antworten:

16

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 wie folgt von der Stackoverflow- Antwort an die Website ü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 diese verwenden

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

Sie können hier auch auf Spezialbefehle verweisen

BlueBerry - Vignesh4303
quelle
1
Ich kann dies momentan nicht versuchen, aber ich gehe davon aus, dass dies nur funktioniert, wenn beim Öffnen der Site ein Dialogfeld angezeigt wird, in dem Sie nach dem Kennwort gefragt werden. In meinem Fall gibt es nur zwei Formen. Eine für den Namen und eine für das Passwort. Ich werde die Frage ändern, um dies klarer zu machen.
Tim
@Tim fügte hinzu, wie Daten weitergegeben werden. Normalerweise müssten Sie herausfinden, auf welche Seite die Seite zugreift (oder welchen Aktionswert die Seite hat).
BlueBerry - Vignesh4303
Das klang, als könnte es funktionieren, aber leider nicht. Wenn Sie sich die Ausgabe von curl ansehen, können Sie davon ausgehen, dass das UsernameFeld korrekt mit dem richtigen Wert gefüllt ist, das PasswordFeld jedoch nicht (dies kann aus Sicherheitsgründen korrekt sein). Ich bin mir nicht sicher, ob der Submit-Button tatsächlich ausgelöst wurde. Ist es wichtig, an welchen Wert übergeben wird Login?
Tim
5

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

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

    # 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 eine skriptfähige automatische Anmeldung sind dann:

  • Stellen Sie diese beiden Optionen ein
  • Öffnen Sie die Anmeldeseite 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
  • Lauf elinks -auto-submit http://somesite.com

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

Ich benutze eigentlich timeout 1m elinks -auto-submit http://somesite.com &, so dass ich nicht die ganze Zeit einen Leerlauf-Elinks-Prozess im Hintergrund laufen habe.

Tim
quelle
3

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

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

Moshe Katz
quelle
0

Ja, es gibt eine sehr einfache Möglichkeit, sich im Internet Ihrer Universität anzumelden. Sie können den ' Lynx' -Webbrowser verwenden, einen textbasierten Browser, der für die Verwendung auf einem Terminal entwickelt wurde. 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 im Formular entspricht, und " Kennwort " der Name des Felds, das dem Kennwortfeld entspricht. " Mein Name " und " Mein Kennwort " sind die entsprechenden Werte, die ausgefüllt werden müssen die Form. 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.

Kushagra Sharma
quelle
0

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.

myfavoritenoisemaker
quelle