쿠키란 ?
쿠키는 유저들의 효율적이고 안전한 웹 사용을 보장하기 위하여 웹사이트에 널리 사용되고 있다.
쿠키는 웹사이트 접속시 접속자의 개인장치에 다운로드 되고 브라우저에 저장되는 작은 텍스트 파일입니다.
웹사이트는 쿠키를 통해 접속자의 장치를 인식하고, 접속자의 설정과 과거 이용내역에 대한 일부 데이터를 저장한다.
쿠키를 사용하는 이유는 ?
- 필수적인 쿠키: 필수적인 쿠키는 페이지 탐색, 웹사이트의 보안영역 접속, 그리고 검색을 포함한 웹사이트의 기본적인 기능의 활성화를 목적으로 사용되고 있다. 본 웹사이트는 필수적인 쿠키 없이 최적화된 기능 수행이 불가하므로 본 쿠키는 이용자의 별도 동의 없이 활성화 되고 있다.
- 기능 쿠키: 기능 쿠키는 웹사이트가 접속자의 지역 및 언어 등 웹사이트의 행태 및 외관에 영향을 줄 수 있는 접속자 설정을 저장하도록 허용하며, 접속자 설정에 따라 웹사이트가 작동하도록 도움을 준다.
- 성능 쿠키: 성능 쿠키는 정보의 익명 수집 및 보고를 통해 웹사이트 운영자가 방문자와 웹사이트 사이의 상호작용을 이해하는데에 도움을 주며, 유저와의 상호관계에 대한 통계자료를 제공함으로써 웹사이트 운영자가 더욱 최적화된 웹사이트를 개발하는데에 기여한다.
- 마케팅 쿠키: 마케팅 쿠키는 유저의 웹사이트 방문 내역을 추적하며, 쿠키 제공자가 접속자의 경향 및 웹사이트 이용 패턴을 파악하도록 함으로써 유저에게 관련성 높은 광고나 제품이 제공되는데에 기여한다다.\XSS 공격으로부터 localStorage에 비해 안전하다.
1. XSS(Cross Site Scripting)
XSS라고 불리는 이유는 CSS가 이미 약자가 있기 때문이고
code injection attack이라고도 한다.
XSS도 다양한 공격 방법이 있는데 우선은
공격자가 의도하는 악의적인 js 코드를 피해자 웹 브라우저에서 실행시키는 것
정도로 알고 있으면 된다.
이 방법으로 피해자 브라우저에 저장된 중요 정보들을 탈취 가능하다.
2. CSRF(Cross Site Request Forgery)
정상적인 request를 가로채 피해자인 척 하고 백엔드 서버에
변조된 request를 보내 악의적인 동작을
수행하는 공격을 의미한다. (피해자 정보 수정, 정보 열람)
ex) 내가 쓰지 않은 광고성 글이 페이스 북에 올라갈 수 있음
이미지나 링크를 클릭하여 사용자의 의도와는 관계없이 request를 보낸다.
유저가 로그인 되어있는 상태라면 정상적으로 공격자의 게시물이 서버에 동작을 수행한다.
🙋♂️ XSS를 막으면 CSRF도 막히는 것 아닌가?
img 태그나 링크로도 사용자 브라우저에서
악의적인 request를 보낼 수 있기 때문에
사용자 브라우저의 js를 조작하는 XSS와는 성격이 다르다.
또한 어려운 방법이지만 사용자 컴퓨터에 해킹툴을 설치하면
request와 response를 탈취하고 조작할 수 있다.
이런 취약점을 막기 위해서는 서버 쪽에서
request의 조작 여부를 판단하도록 해야한다.
XSS 공격을 막는 것은 웹 보안을 위한 최소한의 조치이다.
쿠키의 사용 방법은 다음 글에서 계속...
'개-발 > Java + Spring + Kotlin' 카테고리의 다른 글
[Spring] Custom Query 사용 전 ! (0) | 2023.01.27 |
---|---|
[Spring] jwt토큰을 더 안전하게 ! (RefreshToken , Cookie) (9) | 2023.01.10 |
[Spring] Access Token 과 Refresh Token (0) | 2023.01.10 |
[Spring] @PathVariable 어노테이션 (0) | 2023.01.01 |
[Spring] RefreshToken +Jwt + Redis (feat.Redis) (0) | 2022.12.28 |