Portfolio/인증과 크롤링

NID_AUT와 NID_SES 쿠키를 이용한 네이버 로그인 처리

Foo 2018. 12. 21. 18:28
728x90

네이버 웹툰 다운로더를 만들면서

19세 이상 인증이 필요한 웹툰을 다운로드를 구현하다가 막혔다.

로그인 처리가 되도록 해야하는데, ID 비밀번호를 입력하고 그걸 이용해서 로그인 처리를 할까도 생각해보았으나,

그리 좋은 방법은 아닌 것 같기도 하고, 네이버에서 세션을 어떻게 처리하고 있는지 확인해보기 위해서 확인도 해볼겸

네이버로 로그인 한 상태의 쿠키들을 확인하다가 NID_AUT와 NID_SES가 세션을 처리한다는 것을 알아내었다.


다음은 로그인 된 상태의 개발자도구에서 확인한 네이버의 쿠키이다.


위에서 확인할 사항은 NID_AUT, NID_SES의 쿠키값(Value)과 Domain이다.

현재 comic.naver.com 도메인으로 들어가 있는 상태이지만

위 두개의 쿠키는 comic.naver.com의 상위 도메인인 .naver.com으로 되어있다.

때문에 쿠키를 추가하거나, 코드를 작성할 때 위 사항을 이용하려면


- Domain 부분을 비워놓거나(이렇게 작성하면 현재 도메인인 comic.naver.com가 default로 들어간다.)

- comic.naver.com을 Domain에 집어넣거나


하면 안된다. 만약 .naver.com이 아닌 comic.naver.com이 도메인으로 들어가면 해당 쿠키를 집어넣어도 네이버에서 로그인된 것으로 처리하지 않는다.


아래는 EditThisCookie를 이용해 NID_AUT와 NID_SES를 수정하는 것이다.

동일한 블라우저에서 실행하면 이미 로그인 처리가 되어있기 때문에 크롬의 시크릿 창을 띄워서 들어갔다.


위와 같이 수정하고 초록색 V 표시된 버튼을 눌러 쿠키를 적용시킨다.


이렇게 하면 위와 같이 로그인이 된 것으로 처리되는 것을 볼 수 있다.

이 상태에서는 실제로 로그인 한 것 처럼 페이지를 이동해도 로그인된 상태가 유지된다.




다음은 실제 코드에 적용한 예시이다.