728x90

Sever-Client

웹 서버에 있는 리소스를 클라이언트가 받아 보려면, 클라이언트는 웹에게 특정 리소스를 지정하여 제공해달라고 요청해야 함. 이때, 서버는 해당 요청을 이해하고 대응되는 동작을 통해 클라이언트에게 리소스 반환함.

Cookie

  • 클라이언트의 정보 기록과 상태 정보를 표현하는 용도로 사용
    • 정보 기록 : 웹 서버는 각 클라이언트의 팝업 옵션을 기억하기 위해 사용
    • 상태 정보 : 웹 서버는 클라이언트를 식별할 수 있는 값을 저장하여 사용
  • HTTP
    • 하나의 Request와 Response의 쌍이 독립적으로 구성되어 통신
      • connectionless 속성 : 하나의 요청에 하나의 응답을 한 후 네트워크 연결을 끝맺는 것
      • stateless 속성 : 네트워크가 연결이 끝맺을 때 상태를 유지하지 않는 것
    • 위와 같은 속성 때문에 HTTP 요청마다 사용자 인증을 해야되는데, 상태를 유지하기 위해서 cookie가 탄생함
  • Cookie 가 있는 통신
    • 클라이언트는 서버에 요청을 보낼 때마다 쿠키를 포함하고, 서버는 해당 쿠키를 통해 클라이언트를 식별함
    • 하지만, 서버가 별다른 검증 없이 쿠키를 통해 이용자의 인증 정보를 식별한다면 쿠키 변조를 통해 공격자가 타 이용자를 사칭해 정보 탈취가 가능함.

Session

  • 세션은 일정 기간동안 같은 사용자(클라이언트)로부터 들어오는 일련의 요구를 하나의 상태로 보고 그 상태를 일정하게 유지시키는 기술
  • 쿠키에 인증 상태를 저장하지만, 클라이언트가 인증 정보를 변조할 수 없도록 하기 위해 사용
  • 인증 정보를 서버에 저장하고 해당 데이터에 접근할 수 있는 키 (랜덤 문자)를 만들어 클라이언트에 전달하는 방식
    • 브라우저 -> 해당 키를 쿠키에 저장하고 이후 HTTP 요청을 보냄
    • 서버 -> 요청에 포함된 키에 해당하는 데이터를 가져와 인증 상태를 확인

개발자 도구 (F12)

  • 요소 검사 버튼 : 웹 페이지의 각 요소에 마우스를 갖다대고 클릭하면 해당 코드를 쉽게 찾을 수 있음
  • 디바이스 툴바 버튼 : 현재 브라우저의 화면 비율 및 User-Agent를 원하는 값으로 변경 가능
  • Elements : 페이지를 구성하는 HTML 검사
  • Console : 자바 스크립트를 실행하고 결과 확인
  • Sources : HTML, CSS, JS 등 페이지를 구성하는 리소스 확인 및 디버깅
  • Network : 서버와 오가는 데이터 확인
  • Application : 쿠키를 포함한 웹 어플리케이션과 관련된 데이터 확인

URI(URL)

  • URI (Uniform Resource Identifier)
    : 인터넷에서 특정 리소스를 나타내는 유일한 주소. URL(Uniform Resource Locator)과 URN(Uniform Resource Name)의 두 가지 형태로 나뉨.
  • URL (Uniform Resource Locator)
    : 인터넷 상의 특정 리소스의 위치를 지정하는 URI의 하위 집합. 일반적으로 프로토콜(예: HTTP, HTTPS), 호스트(웹 사이트의 도메인 이름), 리소스의 경로 및 파일 이름 등의 구성 요소로 구성. 
    ex) "https://www.example.com/page.html" ->  HTTPS 프로토콜을 사용하여 "www.example.com" 호스트에 위치한 "page.html"이라는 파일

포트

  • 호스트 내에서 실행되고 있는 프로세스를 구분짓기 위한 16비트의 논리적 할당
  • 0~65536개의 개수 가짐
  • IP주소는 컴퓨터를 찾을 때 필요한 주소, 포트는 컴퓨터 안에서 프로그램을 찾을 때 사용
  • 포트 번호
    • 0번 ~ 1023번 : well-known port (ex. 80 : HTTP / 443 : HTTPS)
    • 1024번 ~ 49151번 : registered port
    • 49152번 ~ 65535번 : dynamic port (동적 포트)

PHP

  • Hypertext Preprocessor : C언어를 기반으로 만들어진 서버 측에서 실행되는 서버 사이드 스크립트 언어

Burp Suite

  • 웹 응용 프로그램의 보안 테스트 도구
  • 웹 애플리케이션, 모바일 서비스 등을 대상으로 요청에 대한 클라이언트를 대신하여 중간에 만날 수 있는 모든 환경 작업을 수행하기 위한 프록시 서버 기능을 가짐

+ Recent posts