jm_p_op
인터파크 로그인 코드 뜯어보다 알게된 것과 경험한것들 본문
- XMLHttpRequest
- Host와 xhr은 Header에 {"x-requested-with":"XMLHttpRequest"}으로 보내진다
- XMLHttpRequest는 과거 많이 썻지만 지금은 fetch를 사용한다.
- cookie
- json방식이 아닌 cookie로 토큰 데이터 보낸다.
- 쓸모없는 데이터도 많이 보낸다....데이터 아까워라....
- JSESSIONID -프론트에서의 jwt같은 놈이다. 연결된 id값을 주는것이다. 없으면 재발급해서 준다.
- pcid
- 프론트에서 만든다. js라서 date.time()에서 나온 7자리수와 랜덤수 3개를 합쳐서 만든다.
- golang으로는 time.unix사용하면 10자리수가 나온다.
- nano초 차이라서 동시성 생각해도 1/1000의 확률에서 n번 실행시 겹칠확률이라 랜덤값 잡은듯...
- 동적 웹페이지
- jwt를 받아서 유저 정보를 받는 api가 있었지만, 동적 웹페이지에서 유저정보를 받아온다.
- 어째서 내가 찾았는데 사라진거죠..?
- 네이버도 똑같다.
- 데이터 크롤링할때 그부분만 빼서 쓰기가 까다롭다.
-
<script> window["EAGER-DATA"] = window["EAGER-DATA"] || {}; window["EAGER-DATA"]["PC-FEED-WRAPPER"] = { "@type": "BLOCK", "blocks": [{ "@type": "BLOCK", "blocks": [{ "@type": "PC-FEED-BLOCK", "blocks": [{ "@type": "PC-FEED-BLOCK", "materials": [{ "@type": "MATERIAL-PC-FEED", "title": "진짜 이럴 거야? 갤럭시 폴드6 슬림 버전 나온다.", "url": "https://blog.naver.com/PostView.naver?blogId=whitepolarbear&logNo=223531794969&proxyReferer=&noTrackingCode=true", "image": { "url": "https://s.pstatic.net/dthumb.phinf/?src=%22https%3A%2F%2Fs.pstatic.net%2Fstatic%2Fwww%2Fmobile%2Fedit%2F20240731_1095%2Fupload_1722424111646EJFiB.jpg%22&type=f504_292&service=navermain" }, ....
- jwt를 받아서 유저 정보를 받는 api가 있었지만, 동적 웹페이지에서 유저정보를 받아온다.
- 5분 제한 시점
- https://accounts.interpark.com/login/form 에서 데이터를 처음 받을때부터 시작한다
- 이는 pc의 정보도 저장하는 방식으로 추정된다.
- window으로 접속후, 시크릿으로 보내면 시간제한오류가 뜬다.
- https://accounts.interpark.com/login/form 에서 데이터를 처음 받을때부터 시작한다
결론
- 코드 뜯어먹는 잡기술만 늘어나고 있다...
- fetch랑 XMLHttpRequest에서 설정을 다하고 .do()로 보내준다.
- 6에서 5분제한 시점은 프로그램을 다시 실행해서 보내줄시 다른 유저로 인식하여 시간제한오류가 나온다.
- xhr로 제작해서 그런지 cookie를 사용하고, 무식하게 쓸모없는 cookie를 보낸다. 무슨 50개쯤씩 보내냐;;;;(범용성 때문이 아니면 귀찮아서 그런듯)
- golang은 구글링하기가 조금 어렵다. 코드란 것이 data구조, 논리, 함수(검색능력)만 이해하면 다 코딩이 된다
- 이짓을 하면 데이터 크롤링하더라도 서버와 나의 컴퓨터의 부하를 줄일 수 있다.
'Front > js' 카테고리의 다른 글
사이트 코드 뜯어내기 (0) | 2024.08.04 |
---|---|
gather 멤버 리스트 뽑기 (4) | 2023.08.21 |
js-html 동적html 만들기(기본 - 쉽게 보기) (0) | 2023.06.22 |
다른 사이트 코드상 빈틈 공략하기(흔한 코딩러의 딴짓) (3) | 2023.05.31 |
<head>.js와 html의 id값 상호작용 (0) | 2023.03.16 |