Linux 명령 행에서 웹 사이트의 로그인 정보를 입력하는 방법


25

내 인터넷 연결은 대학에서 제공합니다. 사용자 이름 / 암호 조합으로 보호됩니다. 이것은 컴퓨터를 시작할 때 웹 브라우저를 시작하고 임의의 웹 사이트를 열어야 함을 의미합니다. 그런 다음 두 가지 형식을 포함하는 페이지로 리디렉션됩니다. 여기에 사용자 이름과 비밀번호를 입력해야합니다. 파이어 폭스 (암호를 저장할 수 있음)와 링크 (빠르게로드하고 명령 줄에서) 로이 작업을 수행했습니다.

bash 스크립트를 사용하여 로그인 프로세스를 자동화하는 방법이 있습니까? 부팅 할 때 로그인을 수행 할 수 있으므로 X 서버를 시작할 때 이미 로그인되어 있습니다.


1
당신은 수있는 형태의에서 로그인 스크립트를 호출 할 수 ACTION와 속성을 curl직접.
terdon

또한 많은 대학에서는 "엔터프라이즈 인증"을 사용하는 네트워크를 제공합니다 (즉, 자격 증명을 요청하기 위해 페이지에 액세스하려고 할 때까지 기다리지 않고 네트워크 연결 자체에 사용자 이름 / 암호 사용). 이러한 네트워크 자격 증명을 저장하는 기능은 OS에 내장되어 있습니다. 또한 다른 사람이 연결을 스누핑하기가 더 어렵 기 때문에 훨씬 더 안전합니다. 당신의 대학이 그것을 지원한다면, 당신은 그것으로 전환해야합니다.
Moshe Katz

또한 로그인 할 때 리디렉션되는 URL의 (익명화 된) 예제를 제공 할 수 있다면 도움이 될 것입니다. 여기서 익명화 된 경우 URL에서 MAC 주소 및 / 또는 IP 주소를 제거해야한다는 의미입니다. 그러나 대학 이름을 포함하여 다른 모든 것을 남겨 두십시오.)
Moshe Katz

답변:


16

curl으로 시도해 볼 수 있으며 다음과 같이 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]

로그인 후 다른 컬 요청을하려면 쿠키가 필요합니다. 쿠키의 세션 ID는 다음 컬 요청이 승인되는 데 도움이됩니다.

쿠키를 원하지 않으면 사용할 수 있습니다

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

특수 명령에 대해서는 여기 를 추가로 참조 할 수 있습니다


1
지금은 시도 할 수 없지만 사이트를 열 때 비밀번호를 묻는 대화 상자가있는 경우에만 작동합니다. 제 경우에는 두 가지 형태가 있습니다. 하나는 이름과 하나는 비밀번호입니다. 나는 이것을 명확하게하기 위해 질문을 바꿀 것이다.
Tim

@Tim은 일반적으로 데이터 전달 방법을 추가했습니다. 일반적으로 페이지가 요청하는 페이지 또는 페이지의 작업 값을 찾아야합니다.
BlueBerry-Vignesh4303 2014 년

이것은 작동하는 것처럼 들리지만 슬프게도 그렇지 않았습니다. curl의 결과를 볼 때 Username필드가 올바른 값으로 올바르게 채워졌지만 Password필드가 올바르지 않은 것으로 나타납니다 (보안 조치로 맞을 수 있음). 제출 버튼이 실제로 트리거되었는지 확실하지 않습니다. 어떤 가치가 전달되는 것이 중요합니까 Login?
Tim

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 닫기
  • 운영 elinks -auto-submit http://somesite.com

후자의 명령은 추가 사용자 상호 작용없이 자동 로그인을 수행해야합니다.

실제로 timeout 1m elinks -auto-submit http://somesite.com &백그라운드에서 항상 유휴 elinks 프로세스가 실행되지 않도록을 사용 합니다.


3

이것을 스크립팅하는 간단한 방법은 Selenium 입니다.

Firefox "Test Recorder"플러그인을 사용하여 네트워크에 로그인 한 자신의 테스트를 기록한 다음 테스트를 재생할 수 있습니다.


0

예, 대학의 인터넷에 로그인하는 매우 간단한 방법이 있습니다 . 터미널에서 사용하도록 설계된 텍스트 기반 브라우저 인 ' Lynx '웹 브라우저를 사용할 수 있습니다. 그래서 방법은 다음과 같습니다.

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

여기서 ' username '은 양식 의 사용자 이름해당하는 필드 이름 이고 ' password '는 비밀번호 필드에 해당하는 필드 이름 이고 ' myname '및 ' mypassword '는 채워질 해당 값입니다. 형태. 모든 브라우저에서 '요소 검사'를 사용하여 필드 이름을 찾을 수 있습니다. BlueBerry-Vignesh4303의 답변에 지시 된대로 curl을 시도했지만 작동하지 않았습니다.


0

저장된 비밀번호를 사용하여 웹 사이트에 자동 로그인하는 브라우저 용 추가 기능을 얻을 수 있습니다. Firefox와 함께 AutoAuth를 사용했습니다. 그런 다음 한 번 로그인하여 자격 증명을 저장 한 다음 방금 가지고있는 스크립트를 작성하십시오.

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

실행되면 자동 로그인됩니다. 여러 사이트를 시도했지만 제대로 작동했습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.