브라우저에 저장되는 작은 크기 문자열 ( 4kb )
쿠키가 있다 ⇒ 이전에 방문한적이 있다
쿠키가 없다 ⇒ 이전에 방문한적이 없다.
영구쿠키 - 만료기간이 있고, 만료기간이 끝난후에 삭제 ( 브라우저를 종료해도 만료기간이 끝나야만 삭제가 됌)
세션쿠키 - 만료기간이 없고, 브라우저 종료시 삭제
퍼스트파티쿠키 - 같은도메인에서 생성된 쿠키, 서브도메인 쿠키를 포함
서드파티쿠키 - 다른도메인쿠키 - 퍼스트쿠키에 스크립트가 있거나 이미지등 퍼스트쿠키에 요청할때 언제든지 생성이 가능하다 , 주로 광고목적으로 사용된다. 개인정보악용우려가 있음
로컬스토리지 - 도메인/ 브라우저에 저장되고 직접삭제시 삭제가 된다. 다른 웹사이트 브라우저에 들어가면 로컬스토리지가 동일하지 않다
세션스토리지 - 도메인 /브라우저/탭에 저장되고 탭종료시 삭제가 된다. 다른 웹사이트 브라우저, 탭에만 들어가도 동일하지 않다.
브라우저 종료시 삭제되어 괜찮은 데이터는 세션스토리지에 저장하는것이 좋다
웹스토리지는 문자열만 저장이 가능하고, 객체를 저장하기 위해서는 직렬화를 해야한다
대부분의 브라우저는 웹스토리지를 지원하지만 버전에 따라 지원안할수도 있기에 에러가 발생할수도있다.
웹스토리지를 처리할때는 에러처리가 필수이다 !!!!
xss : 어느정도 해결은 되었지만 웹스토리지도 취약하다
독립된 스토리지 - 데스크탑, 모바일에 따라 다르게 데이터를 볼수있다
시간설정이 불가하다
동기적으로 실행되기에 메인스레드가 블로킹을 일으킬수 있다.
HttpOnly - 자바스크립트로 쿠기 접근 불가
innerHTML사용 안하는것 - 사용자의 입력이 자바스크립트로 실행되는 코드를 작성하지 않는것 ( innerHTML, eval, document.write) 공격이 가능한 스크립트 태그를 넣지 못하도록 한다.
하지만 이것을 사용해야한다면 xss 보안 라이브러리 (sanitize-html, DOMPurify) 사용
SameSite - 같은 도메인의 요청에만 쿠키를 전송 ( strict : 모두 허용하지 않음 , Lax 안전한 Get요청만 허용 )
Referer검증 - 요청온 사이트의 도메인을 확인할수 있음