cURL을 사용하여 로그인 사이트


12

cURL 명령 줄에서 다음 명령으로 로그인하려고합니다.

curl --data "username = user & password = pass & submit = Login" http://www.ip.com:8080/LoginApplication/Login.jsp

그런 다음을 사용하여 내부 페이지에 액세스하려고하면

curl http://www.ip.com:8080/LoginApplication/Success.jsp

그러나 로그인하지 않아 오류 페이지로 리디렉션되고 있습니다.

세션을 유지할 수 있도록 첫 번째 명령에서 누락 된 사항은 무엇입니까? 내 웹 사이트를 로컬로 호스팅했습니다


답변:


15

세션 데이터를 쿠키에 저장해야합니다. -c cookie_filename쿠키를 만드는 데 사용할 수 있습니다 (로그인 명령에 추가). 그런 다음 다른 요청의 경우을 사용하여 쿠키에서 읽을 수 있습니다 -b cookie_filename.

예를 들면 다음과 같습니다.

curl -s loginpage -c cookiefile -d "user=myself&pass=secure"
curl -s secretpage -b cookiefile

편집 :

loginpage웹 브라우저에서 사용자 및 비밀번호를 소개하는 페이지가 아닌 경우가 많습니다 . 양식에서 해당 데이터를 게시하는 위치를 확인해야합니다 ( <form>소스 코드 및 action=...속성 에서 태그 검색 ). 따라서 예를 들어, 당신은에 로그인 할 경우 https://criticker.com , loginpage이다 https://www.criticker.com/authenticate.php 하지 https://www.criticker.com/signin.php , 브라우저에서 여는 것입니다.

브라우저의 탬 퍼링 플러그인 / 확장 프로그램 loginpage은 폼에 숨겨진 입력 필드와 같이 올 바르고 게시 된 모든 데이터를 찾는 데 도움이 될 수 있습니다 .


주어진 -s -c -d 시퀀스는 쿠키 파일도 생성하지 않습니다
SAR

그것은 큰 도움이되었습니다. 내 소스를 다시 보았고 요청이 컨트롤러로 가고 있다는 것을 알았고 명령을 수정하고 나에게 도움이되었습니다.
SAR

이것은 HTTP에서 잘 작동합니다. HTTPS로 추가 작업을 수행해야하는 것이
SAR

@SAR : 인증서에 문제가 있습니다. 아마도 당신은 그냥 사용하고 싶을 것 -k입니다. curl --help인증서 처리 방법에 대한 자세한 내용을 보거나 인터넷을 검색 하십시오 . ;-)
Peque

1
큰 도움을 주셔서 감사합니다 ... 내 컬과 관련된 문제는 "로그인 페이지는 웹 브라우저에서 사용자와 비밀번호를 소개하는 페이지가 아닙니다."... 감사합니다!
Sambhav Pandey
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.