DOCUMENTS

Record
  • bug_report

Storage Access API

 분할되지 않은 쿠키(cookie)에 접근하는 방법을 제공한다.

배경

초기 웹은 쿠키를 저장할 때 자사, 타사 구분없이 모두 하나의 저장소에 저장했다. 보안에 대한 이슈가 상대적으로 적었던 그 때에는 이게 크게 문제가 되지 않았던 모양이다. 그러나 쿠키는 대부분 사적인 데이터일 확률이 높으며 이러한 데이터를 타사에서 악용할 수 있는 문제가 있을 수 있다. 그래서 지금은 최상위 사이트마다 독립적으로 분할된 공간에 쿠키가 저장되도록 일종의 샌드박스를 적용하고 있다. 독립 분할 상태를 갖는 쿠키를 "분할 쿠키(CHIPS)"라고 한다. 분할된 타사 쿠키는 처음에 설정된 최상위 사이트에 연결되며 다른 최상위 사이트에서 분할된 영역으로 접근할 수 없다. 

자사 쿠키(first-party context cookie)

웹 서비스에서 필요한 이유로 개발자가 생성하는 쿠키를 의미한다.

타사 쿠키(third-party context cookie)

자체적으로 생성한 쿠키가 아닌 타사의 애플리케이션 등을 사용하므로 인해 생성된 쿠키를 의미한다. 이러한 쿠키는 더 나은 서비스를 제공하기 위해 필요한 것이지만 사용자를 추적하는 등의 목적으로 악용될 수도 있다.

상대적으로 분할되지 않은 쿠키는 제3자의 접근이 용이하다는 의미이며 보안상 취약하다는 뜻이기도 하다. 그래서 유저 에이전트는 보안 강화를 위해 자사이든 타사이든 분할되지 않은 쿠키에 대해 기본적으로 차단할 수 있다. 하지만 합법적인 쿠키 사용을 하고자 할 때는 정상적인 서비스일 경우에 방해 요소가 된다. Storage Access API는 현재 분할되지 않은 쿠키에 접근할 수 있는지 여부를 확인하고 접근할 수 없다면 유저 에이전트에게 접근 허용을 요청할 수 있도록 지원한다.

필요성

사실 이러한 보안 이슈를 가지고 있다고 해서 속편하게 분할되지 않은 쿠키 자체를 원천적으로 금지할 수 있는 것이 아니다. 오늘날의 복잡한 웹서비스를 가능하게 하는 배경 중에는 다양한 형태로 존재하는 쿠키가 있기에 가능할 수 있기도 하다.

Storage Access API는 다음과 같은 메서드를 포함하여 분할되지 않은 쿠키에 대한 접근 권한을 유연하게 해주고 있다.

외부 리소스

The Storage Access API
Draft Community Group Report, 9 October 2023