Як ввести інформацію про вхід для веб-сайту з командного рядка linux


25

Моє підключення до Інтернету забезпечує університет. Він захищений комбінацією імені користувача / пароля. Це означає, що коли я запускаю комп’ютер, я повинен запустити веб-браузер і відкрити довільний веб-сайт. Потім мене переспрямовують на сторінку, яка (серед іншого) містить дві форми. У них я маю ввести ім'я користувача та пароль. Мені вдалося це зробити з firefox (який може зберегти пароль), а також із посиланнями (які завантажуються швидше та з командного рядка).

Чи є спосіб автоматизувати процес входу за допомогою сценарію bash? Це дозволить робити логін під час завантаження, так що він вже є, коли я запускаю сервер X.


1
Можливо, ви зможете викликати скрипт входу з ACTIONатрибуту форми curlбезпосередньо.
тердон

Багато університетів також пропонують мережу, яка використовує "Аутентифікація підприємства" (тобто використовуючи ім'я користувача / пароль для самого мережевого з'єднання, замість того, щоб чекати, поки ви не спробуєте отримати доступ до сторінки для запиту облікових даних). Можливість зберігання таких мережевих даних вбудована в ОС. Це також набагато безпечніше, оскільки це означає, що іншим складніше прослуховувати ваш зв’язок. Якщо ваш університет це підтримує, вам слід перейти до цього.
Моше Кац

Це також допоможе нам, якщо ви можете надати (анонімізований) приклад URL-адреси, до якої ви перенаправляєтесь під час входу. (Анонімізований тут означає, що ви повинні видалити свою MAC-адресу та / або IP-адресу з URL-адреси, якщо вони є, але залиште все інше, включаючи назву університету.)
Моше Кац

Відповіді:


16

Ви можете спробувати його з завитком , ви можете просто використовувати curl, як це для входу на веб-сторінку:

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

Ви можете передати Дані на такий веб-сайт з відповіді Stackoverflow

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

вам потрібні файли cookie, якщо ви хочете зробити ще один запит на згортання після входу. Ідентифікатор сесії у файлах cookie допоможе наступному авторизованому запиту на згортання.

Якщо ви не хочете, ви можете використовувати файли cookie

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

Ви можете додатково звернутися сюди до спеціальних команд


1
Зараз я не в змозі спробувати це, але сподіваюся, що це спрацює лише тоді, коли з’явиться діалогове вікно із запитом пароля під час відкриття сайту. У моєму випадку є лише дві форми. Один для імені та одного для пароля. Я зміню питання, щоб зробити це зрозумілішим.
Тім

@Tim додав, як передавати дані, як правило, вам потрібно буде з’ясувати, на яку сторінку запитує сторінку (або значення дії сторінки).
BlueBerry - Vignesh4303

Це звучало так, ніби це може спрацювати, але, на жаль, це не так. При перегляді виводу curl припускає, що Usernameполе правильно заповнене правильним значенням, але це Passwordполе не (це може бути правильним як міра безпеки). Я не впевнений, чи дійсно була запущена кнопка подання. Чи має значення, яке значення передається Login?
Тім

5

Нарешті я знайшов спосіб автоматичного входу за допомогою elinks. Він працює, і його навіть легко налаштувати!

Потрібно встановити два варіанти. Це можна зробити, додавши наступні рядки в ~/.elinks/elinks.conf(якщо файлу немає, створіть його) або змінивши значення у відповідних позиціях діалогового вікна параметрів у межах 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

Наступні кроки для автоматичного запису сценарію:

  • Встановіть ці два варіанти
  • Відкрийте сторінку входу elinks, заповніть форми та подайте їх.
  • Виберіть, щоб запам'ятати ім'я та пароль для подальшого використання.
  • Закрити посилання
  • Біжи elinks -auto-submit http://somesite.com

Остання команда повинна виконувати автоматичний вхід без подальшої взаємодії з користувачем.

Я насправді використовую timeout 1m elinks -auto-submit http://somesite.com &, щоб у мене весь час не працював процес простою, що працює у фоновому режимі.


3

Простий спосіб це зробити за допомогою сценарію Selenium .

Ви можете використовувати їх плагін Firefox "Test Recorder", щоб записати тест власного входу в мережу, а потім відтворити тест.


0

Так, є дуже простий спосіб увійти до Інтернету вашого університету. Ви можете скористатися веб-браузером Lynx , який є текстовим браузером, призначеним для використання на терміналі. Отже, ось такий спосіб:

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

де " ім'я користувача " - це ім'я поля, що відповідає формі імені користувача у формі, а " пароль " - це ім'я поля, що відповідає полі пароля, а " моє ім'я " та " мій пароль " - відповідні значення, які потрібно заповнити форма. Ім'я поля можна знайти, використовуючи "Перевірити елемент" у будь-якому браузері. Я спробував з завиткою, як вказано у відповіді BlueBerry - Vignesh4303, але не вийшло.


0

Ви можете отримати надбудову для свого браузера, яка автоматично входитиме на веб-сайти із збереженими паролями. Я використовував AutoAuth з firefox. Потім один раз увійдете в систему і збережіть свої облікові дані, а потім напишіть сценарій, який щойно є

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

Коли буде виконано, він перейде та автоматично входить у систему. Я спробував з кількома сайтами, і це спрацювало добре.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.