제목 | 웹 크롤링 / 서로다른 도메인에서 세션유지 통신 문의 | ||
---|---|---|---|
카테고리 | CI 2, 3 | ||
글쓴이 | 라산 | 작성시각 | 2022/01/20 20:04:50 |
|
|||
안녕하세요, 웹 크롤링 / 서로다른 도메인에서 세션유지 통신 관련 궁금한게 있어서 글 남깁니다. A와 B사이트 가 있는데요, 두 사이트는 도메인이 다릅니다. A사이트에서 로그인 버튼을 클릭시, 특정값을 갖고 B사이트의 로그인 페이지로 이동합니다. 이후 사용자가 B사이트에서 아이디와 비밀번호를 입력하면 B사이트에서 로그인 처리 이후 해당 회원의 고유값을 A사이트 로 전달해줍니다. 그럼 A사이트에서 고유값을 암호화하여 다시 B사이트로 전달하면, B사이트에서 검증 후 해당 회원의 암호화된 개인정보를 보여줍니다. (페이지 내에 찍혀있음 echo 나 print_r 형식처럼..)
근데 이 암호화된 개인정보가, return 되는게 아니고 그냥 페이지 자체에 찍혀있는데, 해당 값을 가져오려면 어떠한 방법들이 있을까 싶어서 여쭤봅니다.
현재까지 진행해본 목록입니다. =========================================================================== 1. CURL로 데이터 전송 및 가져오기 ( B사이트에서 세션검증을 하는데 CURL 통신시 세션값이 null 이여서 불가 ) 2. ajax 사용 ( 두 도메인이 달라 CORS 이슈로 사용 불가 ) 3. ajax->jsonp 사용 ( 리턴되는타입이 jsonp 가 아니라서 돌아오는 값이 없음 ) 4. iframe 사용 ( 보안정책으로 인해 iframe 사용 불가 ) 5. 스누피를 이용한 크롤링 ( B사이트에서 세션 검증을 하는데 세션값이 null 이여서 불가 ) 5-1) 스누피 크롤링 이용 시 $login_url = '로그인페이지 url'; $snoopy->httpmethod = "POST"; $auth['id'] = '아이디'; $auth['password'] = '비밀번호'; $snoopy->submit($login_url, $auth); $snoopy->setcookies(); 으로 로그인 진행 후 회원정보 받는페이지 접근시에는 세션값이 생성되어서 그런지, 데이터가 나오긴합니다. 다만 A사이트에서 회원의 아이디나 비밀번호를 받는곳이 없어서, 위의 기재한 방법을 사용할 수 없습니다.. ===========================================================================
서로 다른 도메인에서, 필요한 세션값을 유지하면서 페이지에 찍혀있는 값을 가져올 수 있는 방법이 있을까요?? 추가적으로.. 회원정보를 가져올때 , B사이트에서 검증하는 세션의 명칭과 값이 무엇인지는 알 수 없습니다..ㅜㅜㅜ |
|||
태그 | 웹크롤링,서로 다른 도메인,세션유지통신 | ||
다음글 | ci4 get_text 기능 구현하려면 어떻게 해야하나... (2) | ||
이전글 | Docker기반 환경에서 CI4와 DB 접속이 안되는 ... (2) | ||
한대승(불의회상)
/
2022/01/21 09:28:17 /
추천
1
각 도메인별 로그인후 쿠키를 통하여 전달되는 세션아이디를 크롤링시 쿠키에 설정하여 전송하여야 합니다.
|
변종원(웅파)
/
2022/01/21 09:49:11 /
추천
1
b사이트에서 보내주는 정보가 화면에 출력되는 거라면 a에서 파싱하는 방법밖에 없습니다. b에서 a의 api로 전송하도록 수정해서 처리하는게 좋습니다. a와 b가 한 회사의 사이트라면 single sign on을 구현하거나 구매해서 적용하시거나 다른 회사의 사이트들이라면 서로 api로 통신하도록 해야 합니다. |
라산
/
2022/01/21 12:05:45 /
추천
0
@한대승(불의회상) 감사합니다. 다만 로그인 후 크롤링시 쿠키에 세션아이디를 설정하라고 하셨는데, 필요한 세션명과 값을 알고있어야 설정해서 전송할 수 있는것 아닌가요?? 혹시 다른방법이 있나요??
@변종원(웅파) 감사합니다. 다만 a와 b가 서로 다른회사의 사이트이고, 해당 데이터를 a 사이트의 특정 url로 리턴되게 처리해달라고 요청하였으나, 의견이 수렴되지 않네요... |
한대승(불의회상)
/
2022/01/21 12:33:25 /
추천
0
@라산 php의 경우 PHPSESSIONID 처럼 쿠키를 서버에서 전송해줍니다. JAVA의 경우 JSESSIONID 처럼 보내 주더군요. 각 서버 설정마다 달라 헤더 정보를 확인해 보셔야합니다. |