코드네임 :

🕵️‍♂️ Web Hacking 스타뚜 본문

🔐Security

🕵️‍♂️ Web Hacking 스타뚜

비엔 Vien 2025. 6. 9. 20:12

강의 수강에 필요한 사전지식...이요? ㅋㅋ

 

 

 

[ HTTP vs HTTPS ]

HTTP (HyperText Transfer Protocol)

: 웹 브라우저와 웹 서버가 텍스트, 이미지, 영상 등을 주고받는 약속된 규칙

🧠 쉽게 말하면:

브라우저: “나 이 글 보고 싶어!”

서버: “알겠어, 이 HTML 파일 줄게!”

- HTTP는 도청당하기 쉬움 (패킷을 가로채면 비밀번호, 쿠키 등이 유출될 수 있음)

 ㄴ 해커들이 중간자 공격을 자주 노림

 

 

HTTPS (HTTP + Secure)

: 암호화된 통신

- TLS/SSL을 사용해서 통신 내용 보호 

 

 


 

 

[ 쿠키와 세션 ]

📎 왜 필요한가?

: 웹은 기본적으로 "상태를 기억하지 못하는 프로토콜" -> 로그인하고 다음 페이지로 넘어가면 누군지 모름 -> 따라서 정보 저장 필요

 

쿠키 

- 브라우저에 저장

- 사용자의 PC에 저장된 정보

- 로그인 토큰, 장바구니 정보

 

세션 

- 서버에 저장

- 브라우저는 세션 ID만 가지고 다님

- 서버가 ID에 대응하는 사용자 정보를 관리

세션 탈취 : 쿠키 탈취 시 그 사람으로 로그인한 척 가능

 

 

- 500에러가 자주 뜨는 페이지는 SQL Injection 같은 취약점 가능성 있음

 

 

 

4. HTTP 메서드 (GET vs POST)

- GET 요청으로 비밀번호 전송하면 주소창에 노출돼서 보안 취약

- POST 요청도 검증 안 하면 XSS나 SQL Injection 당할 수 있음

 

 

 

5. 입력 검증 (Input Validation)

- 사용자의 입력을 그대로 처리하면 위험

  • 예시: 검색창에 '><script>alert(1)</script> 입력하면?
  •  XSS(크로스사이트스크립팅) 발생 가능

➡️ 방어 전략

- HTML 인코딩

- SQL 쿼리 파라미터화

- 정규식으로 입력 검증

 

 

 

6. 인코딩 vs 암호화

인코딩은 변환, 암호화는 숨김

 

 

 

🔚 정리: 웹 구조를 이렇게 이해하면…

브라우저 → 서버 요청 흐름

  1. 사용자가 https://example.com/login 입력
  2. 브라우저가 서버에 GET /login 요청
  3. 서버는 로그인 HTML 폼 전송
  4. 사용자 입력 후 POST /login 요청 (아이디/비번 전송)
  5. 서버는 세션 생성 → 쿠키로 전달
  6. 이후 요청부터는 쿠키로 사용자 식별