크롤링 5

CSRF 토큰과 DOM

배경CSRF 토큰, dom 은 뭐고 왜필요할까?둘은 어떤관계를 가지고 있을까?본문1. 한 줄 요약CSRF 토큰은 로그인이나 폼 전송 시 서버가 발급한 보안 코드이고, DOM은 그 토큰이 담긴 HTML 구조 안에서 우리가 그 값을 추출해내는 장소입니다.2. 🧠 용어 먼저 정리✅ CSRF 토큰이란?CSRF = Cross-Site Request Forgery (사이트 간 요청 위조)사용자가 로그인한 상태를 악용해, 의도치 않은 요청을 자동으로 보내는 공격을 막기 위해 사용됨서버는 폼 안에 무작위 토큰을 삽입해서, 이 토큰이 없거나 틀리면 요청을 거부함 CSRF 토큰은 HTML 안에 숨겨진 input 필드로 들어가며,서버는 이 값을 확인해 정상 요청인지 판단합니다.✅ DOM이란?DOM (Docu..

크롤링 2025.04.22

로그인시 토큰을 요청하는 이유

배경크롤링 코드를 짜던와중, 토큰을 요청하는 경우가 많음토큰이 뭐고 왜 필요할까?본문1.요약로그인 후 토큰을 요청하는 이유는, 비밀번호를 자주 보내지 않으면서도 인증된 사용자임을 증명하기 위해서입니다.요즘 대부분의 웹서비스는 사용자 로그인 이후 Access Token, Refresh Token 같은 인증 토큰을 발급하고,클라이언트는 이 토큰을 이용해 API와 안전하게 통신합니다.2. 로그인 → 토큰 흐름 요약[1] 사용자가 로그인 (ID/PW 입력) ↓[2] 서버가 Access Token / Refresh Token 발급 ↓[3] 이후 요청은 토큰만으로 인증3. 왜 토큰이 필요할까?비밀번호를 계속 보내는 건 너무 위험함매 API 요청마다 비밀번호를 보내는 구조라면?→ 중간자 공격(MITM), 로그..

크롤링 2025.04.22

Post 로그인이 안됐던 이유

배경크롤링 코드 짜던도중, request의 post로 로그인이 실패함.selenium으로 짜니 성공, 실제로 이런 경우가 많았는데 그게 왜인지 알고 싶음본문JavaScript 기반 로그인 처리많은 웹사이트는 로그인 시 JavaScript로 동작하는 로그인 로직을 사용합니다.예를 들어:로그인 버튼 클릭 → JS에서 추가로 토큰 생성숨겨진 필드(예: CSRF 토큰, CAPTCHA 응답 등) 자동 생성✅ Selenium은 브라우저를 그대로 띄우기 때문에 이런 JS 로직을 모두 실행할 수 있음❌ requests.post()는 단순히 HTTP 요청만 보내기 때문에 JS 실행을 하지 못함CSRF 토큰 미포함로그인 폼 안에 같은 항목이 포함되어 있는 경우이 토큰은 로그인 시 요청에 반드시 포함돼야 하며, 보통 로그..

크롤링 2025.04.22

request에서 get, post, put 등의 의미와 사용예시

배경아무생각없이 request로 크롤링을하다가, request의 사용방법이 궁금해졌다.각 메서드(get, post, put )들의 사용방법조차 모르고 있다는 점을 깨달음.내용✅ 1. GET의미: 서버로부터 데이터를 조회함 특징: 서버 상태나 리소스를 변경하지 않음 (안전하고 반복 호출 가능) 주요 사용 예시:게시글 목록 조회특정 상품 정보 조회예:requests.get('https://api.example.com/posts')✅ 2. POST의미: 서버에 새로운 리소스를 생성하거나 데이터 전송 특징: 서버 상태가 변함, 요청 본문에 데이터 포함 주요 사용 예시:회원가입로그인게시글 작성댓글 작성예:requests.post('https://api.example.com/users', json={'nam..

크롤링 2025.04.22

크롤링 시 HEADERS를 활용해 사람인척 하기

📌 HTTP 요청 헤더(HEADERS) 설명웹 크롤링을 할 때, 서버가 요청을 정상적인 브라우저 요청인지, 아니면 봇(자동화 프로그램)인지 구별하기 위해 여러 정보를 확인합니다.따라서, 정상적인 브라우저처럼 보이게 하려면 HEADERS 값을 적절히 설정해야 합니다.아래는 크롤링에 필요한 주요 헤더들의 역할과 필요성에 대한 상세 설명입니다.HEADERS = { "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36", "Accept": "text/html,application/xhtml+xml,application/xml;q..

크롤링 2025.02.12