1일 1로그 100일 완성 IT지식 - 통신 75~77
쿠키
HTTP - Stateless
Stateless는 직역하자면 비연결성이다. 비연결성이란 클라이언트가 요청을 하고, 서버가 해당 요청에 적합한 응답을 하게되면 바로 연결이 끊어지는 성질을 의미한다.
즉 HTTP는 상태를 저장하지 않음을 의미하며 이로인해 HTTP 자체는 사용자 구별을 하지 못한다.
쿠키(Cookie)
그렇다면 Stateless한 HTTP를 Stateful하게 만들 수 있는 방법이 없을까? 쿠키가 그에 대한 답 중 하나가 될 수 있다.
쿠키는 웹 브라우저가 보관하는 데이터이다. 웹 서버는 쿠키를 생성하여 웹 브라우저에 정보를 전송할 수 있다.
쿠키는 Key - Value 형태로 웹 브라우저(클라이언트)의 쿠키 저장소에 저장된다. 서버로부터 쿠키를 전달받은 클라이언트는 이후 웹 서버에 요청을 보낼 때 쿠키를 헤더에 실어서 함께 전송한다. 이를 이용하면 웹 서버와 클라이언트는 필요한 값을 공유하고 상태를 유지할 수 있다.
클라이언트에 보관된 쿠키는 유효기간 설정이 가능합니다. 유효기간을 설정하면 쿠키는 특정 시간이 지나면 자동으로 소멸합니다. 유효기간을 설정하지 않을 시에는 브라우저 종료와 함께 소멸합니다.
쿠키가 HTTP를 Stateful하게 만들어줄 수는 있지만 만능인 것만은 아니다. 여러 보안상의 이슈가 발생될 수 있는 우려가 있다.
쿠키는 클라이언트에 저장되기 때문에 쿠키의 정보가 쉽게 변질 혹은 삭제될 수 있으며 네트워크 상에서 전달되기에 전달 과정 상에서 탈취 될 위험성도 존재한다.
Reference
Web Application의 보안이슈
Javascript - XSS(Cross-Site Scription)
우리가 웹 어플리케이션을 사용함에 있어 아무런 경각심 없이 사용하고 있는 자바스크립트 상에는 여러가지 보안상의 이슈가 존재한다. 그 종류가 정말 다양하여 오늘은 그 중에서 가장 대표적이라 할 수 있는 XSS(Cross-Site Scription) 에 대해서만 설명하고 넘어가고자 한다.
XSS는 웹 페이지에 악성 자바스크립트를 삽입하는 공격이다. 이 공격을 이용하면 사이트 이용자의 정보를 손쉽게 탈취할 수 있다.
위 이미지를 바탕으로 한 공격 시나리오는 아래와 같다.
1. 해커가 특정 홈페이지의 XSS 보안의 허술함을 악용하여 악성 코드를 삽입한다.
2. 사용자가 해당 홈페이지에 접속한다.
3. 악성 코드가 사용자가 노출된다.
4. 감염된 사용자의 PC를 통해 개인정보유출, 해킹 등 2차적인 피해를 입힌다.
자바스크립트와 플러그인 설치에 보수적이어야한다.
Reference
'🖥CS' 카테고리의 다른 글
네이버를 검색하고 화면에 출력되기까지 (0) | 2022.09.28 |
---|---|
TCP/UDP (0) | 2022.09.27 |
자바스크립트/파이썬은 어떻게 작동할까? (0) | 2022.08.12 |
1일 1로그 100일 완성 IT지식 - SOFTWARE 27 (0) | 2022.07.31 |
Spring 이해를 위한 기본 지식 (0) | 2022.07.25 |