Programming

다른 페이지에서 로그인이 필요한 페이지에 액세스하기위한 CURL

procodes 2020. 8. 22. 12:39
반응형

다른 페이지에서 로그인이 필요한 페이지에 액세스하기위한 CURL


두 페이지가 있습니다 : xyz.com/axyz.com/b. 처음 xyz.com/b로그인 해야만 액세스 할 수 있습니다 xyz.com/a. 액세스하는 경우 xyz.com/b다른 거치지 않고, 나는 단순히 브라우저를 통해 액세스가 거부 (로그인없이 리디렉션)을 얻는다. 에 로그인 xyz.com/a하면 다른 계정에 액세스 할 수 있습니다.

내 문제는 curl 명령을 사용하여 수행하는 것입니다. xyz.com/acurl 사용하여 성공적으로 로그인 할 수 있지만 시도 xyx.com/b하면 액세스가 거부됩니다.

다음을 사용합니다.

curl --user user:pass https://xyz.com/a  #works ok
curl https://xyz.com/b #doesn't work

사용자 / 암호 부분없이 &없이 두 번째 줄을 사용해 보았지만 여전히 작동하지 않습니다. 두 페이지 모두 동일한 CA를 사용하므로 문제가되지 않습니다. 어떤 제안? 감사


웹 사이트는 쿠키 를 사용하여 세션 정보를 저장합니다. 당신이 달릴 때

curl --user user:pass https://xyz.com/a  #works ok
curl https://xyz.com/b #doesn't work

curl두 개의 개별 세션에서 두 번 실행됩니다. 따라서 두 번째 명령이 실행되면 첫 번째 명령에서 설정 한 쿠키를 사용할 수 없습니다. 마치 a한 브라우저 세션에서 페이지 로그인하고 다른 세션에서 페이지 b액세스하려고 시도한 것과 같습니다.

해야 할 일은 첫 번째 명령으로 생성 된 쿠키를 저장 하는 것입니다 .

curl --user user:pass --cookie-jar ./somefile https://xyz.com/a

두 번째를 실행할 때 다시 읽어보십시오.

curl --cookie ./somefile https://xyz.com/b

또는 동일한 쿠키를 사용하는 동일한 명령으로 두 파일을 모두 다운로드 할 수 있습니다.


또한 브라우저를 통해 로그인하고 쿠키를 포함한 모든 헤더로 명령을받을 수 있습니다.

개발자 도구의 네트워크 탭을 열고 로그인 한 다음 필요한 페이지로 이동하여 "cURL로 복사"를 사용하십시오.

스크린 샷


인터넷 검색 후 다음을 발견했습니다.

curl -c cookie.txt -d "LoginName=someuser" -d "password=somepass" https://oursite/a
curl -b cookie.txt https://oursite/b

작동하는지는 모르겠지만 올바른 방향으로 인도 할 수 있습니다.

참고 URL : https://stackoverflow.com/questions/12399087/curl-to-access-a-page-that-requires-a-login-from-a-different-page

반응형