Come inserire le informazioni di accesso per un sito Web dalla riga di comando di Linux


25

La mia connessione Internet è fornita dall'università. È protetto da una combinazione nome utente / password. Ciò significa che quando avvio il mio computer, devo avviare un browser Web e aprire un sito Web arbitrario. Vengo quindi reindirizzato a una pagina, che (tra le altre cose) contiene due forme. In questi devo inserire username e password. Sono riuscito a farlo con Firefox (che può salvare la password) e anche con i collegamenti (che si caricano più velocemente e dalla riga di comando).

C'è un modo per automatizzare il processo di accesso usando uno script bash? Ciò consentirebbe di eseguire l'accesso durante l'avvio, in modo che sia già presente all'avvio del server X.


1
Si potrebbe essere in grado di chiamare lo script di login dal del form ACTIONattributo con curldirettamente.
Terdon,

Molte università offrono anche una rete che utilizza "Autenticazione aziendale" (ovvero utilizzando un nome utente / password per la connessione di rete stessa, invece di attendere fino a quando non si tenta di accedere a una pagina per richiedere le credenziali). La capacità di memorizzare tali credenziali di rete è integrata nel sistema operativo. È anche molto più sicuro perché significa che è più difficile per gli altri curiosare sulla tua connessione. Se la tua Università lo supporta, dovresti passare ad esso.
Moshe Katz,

Ci aiuterebbe anche se fosse possibile fornire un esempio (anonimo) dell'URL a cui si viene reindirizzati al momento dell'accesso. (Anonimo qui significa che è necessario rimuovere il proprio indirizzo MAC e / o indirizzo IP dall'URL, se presenti, ma lascia tutto il resto, incluso il nome dell'Università.)
Moshe Katz,

Risposte:


16

Puoi provarlo con l' arricciatura , puoi semplicemente usare l'arricciatura in questo modo per accedere alla pagina web:

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

È possibile passare i dati al sito Web in questo modo dalla risposta StackOverflow

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

hai bisogno dei cookie se vuoi fare un'altra richiesta di arricciatura dopo aver effettuato l'accesso. L'ID sessione nei cookie aiuterà la successiva richiesta di arricciatura autorizzata.

Se non vuoi i cookie puoi usare

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

È inoltre possibile fare riferimento qui per i comandi speciali


1
Non sono in grado di provare questo ora, ma mi aspetto che funzionerà solo quando c'è una finestra di dialogo che chiede la password quando si apre il sito. Nel mio caso ci sono solo due forme. Uno per il nome e uno per la password. Cambierò la domanda per renderlo più chiaro.
Tim

@Tim ha aggiunto come passare i dati, normalmente dovresti scoprire a quale pagina richiede la pagina (o il valore dell'azione della pagina).
BlueBerry - Vignesh4303

Sembrava che potesse funzionare, ma purtroppo non ha funzionato. Quando si guarda all'output del ricciolo, si suggerisce che il Usernamecampo è riempito correttamente con il valore corretto, ma il Passwordcampo non lo è (questo può essere corretto come misura di sicurezza). Non sono sicuro che il pulsante di invio sia stato effettivamente attivato. Importa a quale valore viene passato Login?
Tim

5

Ho finalmente trovato un modo per accedere automaticamente utilizzando elinks. Funziona ed è persino facile da configurare!

È necessario impostare due opzioni. Questo può essere fatto aggiungendo le seguenti righe ~/.elinks/elinks.conf(se il file non è presente, creane uno) o modificando i valori nelle rispettive posizioni nella finestra di dialogo delle opzioni all'interno 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

I passaggi per un autologin tramite script sono quindi:

  • Imposta queste due opzioni
  • Apri la pagina di accesso elinks, compila i moduli e inviali.
  • Scegli di ricordare il nome e la password per un uso successivo.
  • Chiudi elinks
  • Correre elinks -auto-submit http://somesite.com

Quest'ultimo comando dovrebbe eseguire l'accesso automatico senza ulteriore interazione da parte dell'utente.

In realtà lo uso timeout 1m elinks -auto-submit http://somesite.com &, in modo da non avere un processo di elinks inattivo in esecuzione in background tutto il tempo.


3

Un modo semplice per scrivere questo è con Selenium .

È possibile utilizzare il plug-in "Test Recorder" di Firefox per registrare un test di accesso alla rete, quindi riprodurre il test.


0

Sì, esiste un modo molto semplice per accedere a Internet della tua università. Puoi utilizzare il browser " Lynx " che è un browser testuale, progettato per essere utilizzato sul terminale. Quindi, ecco il modo:

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

dove " nome utente " è il nome del campo corrispondente al nome utente nel modulo e " password " è il nome del campo corrispondente al campo della password e " mio nome " e " mypassword " sono i valori corrispondenti da compilare il modulo. Puoi trovare il nome del campo usando 'Ispeziona elemento' da qualsiasi browser. Ho provato con l'arricciatura come indicato nella risposta di BlueBerry - Vignesh4303 ma non ha funzionato.


0

È possibile ottenere un componente aggiuntivo per il browser che accederà automaticamente ai siti Web con password salvate. Ho usato AutoAuth con Firefox. Quindi accedi una volta e salva le tue credenziali, quindi scrivi uno script che ha appena

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

Una volta eseguito, andrà e il login automatico. Ho provato con più siti e ha funzionato bene.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.