2017-12-28 15 views
-1

Ich habe versucht, dies herauszufinden mit verschiedenen Methoden. Ich versuche, ein Skript/Lesezeichen oder eine Art Schnellaktion zu erstellen, um eine Browser-Registerkarte oder ein Browserfenster mit einer bestimmten URL zu öffnen und mich automatisch mit meinen Anmeldeinformationen anzumelden. Mir geht es im Moment nicht um die Sicherheit.Auto-Login zur Website mit Skript oder Lesezeichen

Zuerst dachte ich, ich würde versuchen, ein Javascript-Lesezeichen zu verwenden, um dies zu tun, aber nichts, was ich gefunden in meiner Forschung gearbeitet. Als nächstes versuchte ich, ein Bash-Skript zu erstellen, aber ich konnte nicht herausfinden, wie ich die Zugangsdaten über das Terminal senden konnte. In letzter Zeit kopierte ich buchstäblich den Quellcode einer Site, erstellte eine lokale Datei und versuchte, etwas zusammen zu hacken, wo ich die Formulardaten mit Anmeldeinformationen füllen konnte und JS verwendete, um das Formular zu senden, und ich bin damit vertraut, aber Aus irgendeinem Grund, wenn ich die JS-Submit-Funktion verwende, wird ein Fehler ausgegeben und der Benutzername und das Passwort sind ungültig. Aber wenn ich die Submit-Funktion abstelle und auf meiner lokalen HTML-Seite manuell auf "Anmelden" klicke, funktioniert es wie erwartet. Ich möchte, dass dies ein Ein-Klick-Prozess ist, daher ist die Idee, onload/submit oder etwas in diesem Sinne zu verwenden, wirklich wichtig für mich.

Die Site, mit der ich teste, hat ein Rails-Backend und mein nächster Versuch könnte versuchen, POST zu verwenden, um das zu tun, was ich denke, aber das ist derzeit außerhalb meines Wissensstands zu diesem Thema.

Wer antwortet: Ich möchte keinen Passwort-Manager verwenden, um dies zu erreichen.

Meine Forderung ist, dass ich entweder auf einer Lage) ein Skript ausführen oder b) verwenden, um eine 1-Klick-Option dieses pro Website zu tun. Im Idealfall könnte ich dies auf eine Art programmatische Weise einrichten, um dies mit mehreren Sites zu tun, aber ich wäre im Moment mit 1 glücklich.

ich weiß, ähnliche Fragen, bevor beantwortet haben, aber ich habe nicht in der Lage gewesen, Informationen aus diesem Posten zu verwenden (die, die ich sowieso gesehen habe), einen guten Weg, um herauszufinden, dies zu tun.

Antwort

-1
  1. Erstellen Sie ein Lesezeichen für die aktuelle Seite, die Sie geöffnet haben.
  2. Bearbeiten Sie das Lesezeichen
  3. Ändern Sie den Wert für die URL in etwa so. (javascript: (function() {CODE_GOES_HERE_FROM_BELLOW})();
  4. das Feld für Benutzername und Passwort auf der Seite finden

Gegeben Beispiel für hotmail

var inputs = document.getElementsByTagName('input'); for(var i=0;i<inputs.length;i++){if(inputs[i].name === 'passwd'){inputs[i].value = 'YOUR_PASSWORD'}else if(inputs[i].name === 'loginfmt'){inputs[i].value = 'YOUR_USERNAME'}}; document.getElementById(document.getElementsByTagName('form')[0].id).submit();

.

ODER

versuchen casperjs.

+0

Gibt es bekannte Probleme mit Chrome bei Verwendung Ihrer Syntax? Ich habe versucht, Ihr Beispiel als Vorlage zu verwenden und erhalte Syntaxfehler. –

+0

Ein weiterer guter Ansatz ist Casperjs zu verwenden. (http://casperjs.org/) Mit diesem können Sie auch die gewünschte Seite laden und dann die Zugangsdaten eingeben und dann abschicken. – Fachher

+0

Das Installieren und Verwenden eines gesamten Frameworks, um das zu erreichen, scheint eine Menge Overkill zu sein. Als ich Ihr Snippet verwendet habe, erhielt ich Syntaxfehler, sodass ich meine eigene Route einging. Eine andere Sache ist, dass leider nicht alle Seiten IDs für ihre Elemente verwenden, oder in anderen Fällen verwenden sie sie für einige und nicht für andere. Die Verwendung einer for-Schleife zum Durchlaufen gleicher Elemente ist in der Theorie eine gute Idee, funktioniert jedoch nicht, wenn Sie jedes Element einzeln identifizieren müssen. –

-1

Die vorgeschlagene Lösung funktionierte nicht für mich und anstatt viel Zeit damit zu verbringen, ein Testframework zu installieren, das ich nie anders als für diesen Zweck verwenden würde, beschloss ich, dies auf eine andere Weise zu tun.

Zuerst fand ich heraus, dass der Grund, meine JS nicht vor heißt arbeitete, weil der Standort darf nicht zu einem JS einreichen getan werden, oder zumindest das ist, was es zu sein schien, wenn ich diesen Fehler bekam: "Synchronous XMLHttpRequest on the main thread is deprecated because of its detrimental effects to the end user's experience"

Das Javascript, das ich benutzte, funktionierte tatsächlich, nur nicht einreichen.Ich habe den folgenden Code die Felder (mit „Klassenname“ Elemente auf der Seite, da es keinen Namen oder ID war) zu füllen:

document.getElementsByClassName('username')[0].setAttribute('value', 'user'); 
document.getElementsByClassName('password')[0].setAttribute('value', 'password'); 

Wie ich bereits erwähnt, das Problem war, als ich versuchte JQuery zu verwenden einreichen das Formular: document.getElementsByClassName('loginForm')[0].submit(); Welches ist, wenn der obige Fehler auftrat. Ich kann nicht wirklich sicher sagen, ob dies die Wurzel der Ursache ist, aber die Seite sendet, aber ich bekomme einen ungültigen Benutzernamen/Passwort Fehler, wenn ich mache

Ich habe nicht herausgefunden, eine gute Möglichkeit zu bekommen um diese nur noch, aber meine kurzfristige, "hacky" -Lösung war, Applescript zu verwenden, um eine return Tastenkombination an den Browser zu senden, um das Formular zu senden. Ich würde im Idealfall herausfinden, wie man mit JQuery die Vorlage zur Arbeit bringt, aber ich bin mir nicht sicher, wie ich das umgehen soll.

Verwandte Themen