Cookie & Session

Jiwon·2022년 1월 3일
0

HTTPS&SSL

목록 보기
5/7

Cookie

내 컴퓨터를 클라이언트라고 한다면,
웹사이트에서 클라이언트에 저장해 놓는 데이터를 '쿠키'라고 한다.

로그인 했다는 정보를 유지
-> 로그인 되었다는 사실을 저장해 놓아야 한다는 의미.

쿠키는 웹 사이트를 방문할 때마다 읽히고 수시로 새로운 정보로 바뀔 수 있다.

일반적으로 쿠키에는 만료일이 있다.
예를 들어, 브라우저를 닫는 경우
자동으로 삭제되는 쿠키도 있으며 (세션쿠키)

일부는 수동으로 삭제되기 전까지 남아있는 등
더 오랜기간 동안 컴퓨터에 저장되는 쿠키도 있다. (지속적 쿠키)

*주의 점
쿠키 값들은 자유롭게 편집이 가능하며 통신 상 유출되기 쉽다.
-> 악의적으로 사용될 여지가 다분하다.

변경되어도 큰 상관 없는 값들은 써도 된다.
유저가 페이스북을 통해서 내 사이트에 왔는지, 네이버를 통해서 내 사이트에 왔는지 등
추적을 위한 값들도 쿠키에 담아서 사용하곤 하는데,
이런 값들은 변조해도 큰 문제가 없다.

그런데 변경해서 사용할 경우에 보안적인 이슈가 될 수 있다.라는 것들은 절대 쿠키에 남기지 않아야 한다.
따라서, 보안상 문제가 없지만 브라우저에 남기고 싶은 정보들을 쿠키에 담는다.

개발자 모드에서 Application을 들어가면

Cookies 항목으로 쿠키를 확인할 수 있다. (시크릿 모드 화면)

Session

현재 로그인 된 정보를 클라이언트의 쿠키가 아닌,
서버에 저장할 때 '세션'이라는 이름을 사용한다.

추측하기 힘든 무작위의 해쉬값으로 생성한 뒤, 데이터베이스에 저장해 둔다.
이렇게 되면 다른 클라이언트에서 Session ID를 추측할 수 없을 뿐더러
해당 Session ID의 User_ID 정보를 서버 측에서 보관할 수 있게 되어
더욱 안전하게 관리할 수 있게 된다.

단점으로 시도 때도 없이 세션이 생성된다.

서버에 저장되는 세션이 많아지면 많아 질수록 세션을 만들고, 찾는 과정에서
처리를 요구하는 부하와 저장 공간이 추가적으로 필요하게 된다.

profile
과연 나는 ?

0개의 댓글