다른 페이지에서 로그인이 필요한 페이지에 액세스하기위한 CURL
두 페이지가 있습니다 : xyz.com/a
및 xyz.com/b
. 처음 xyz.com/b
로그인 해야만 액세스 할 수 있습니다 xyz.com/a
. 액세스하는 경우 xyz.com/b
다른 거치지 않고, 나는 단순히 브라우저를 통해 액세스가 거부 (로그인없이 리디렉션)을 얻는다. 에 로그인 xyz.com/a
하면 다른 계정에 액세스 할 수 있습니다.
내 문제는 curl 명령을 사용하여 수행하는 것입니다. xyz.com/a
curl 을 사용하여 성공적으로 로그인 할 수 있지만 시도 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
작동하는지는 모르겠지만 올바른 방향으로 인도 할 수 있습니다.
'Programming' 카테고리의 다른 글
문자열의 처음 100 자 출력 (0) | 2020.08.22 |
---|---|
Windows 라이선스 키의 모든 순열 (0) | 2020.08.22 |
Android Studio에서 Gradle 작업 실행을 중지하는 방법은 무엇입니까? (0) | 2020.08.22 |
Swift에서 SCNetworkReachability를 사용하는 방법 (0) | 2020.08.22 |
Xcode 6 스토리 보드 확대 / 축소를 활성화하는 방법은 무엇입니까? (0) | 2020.08.22 |