관련지식
chrome, samesite

2월달에 정식 서비스될 크롬 80버전에서 크로스 사이트간 쿠키 보안을 위해 SameSite 디폴트 정책을 변경한다고 합니다.

  • 기존 : SameSite=None
  • 변경 : SameSite=Lax

기본 설정이 변경됨에 따라 변하는것은 iframe으로 호출되는 URL이 크로스 도메인일 경우 거기서눈 쿠키 사용이 어려울수 있다는 것입니다. 아래와 같이 서비스를 하는 화면이 있다고 가정합니다.

A사이트의 화면 —-> iframe —-> B사이트

그런데 B사이트에서 쿠키 또는 세션을 사용하고있다면 기존에는 문제가 없었지만 정책 변경이후에는 쿠키값을 전달하지 못할수 있습니다. SameSite가 Lax일 경우 대다수의 상황에서 쿠키 전달을 막기 때문입니다. 따라서 B사이트에서 쿠키를 생성할때 아래와 같이 SameSite=None과 Secure 속성을 직접 설정해줘야 합니다.

그런데 놓칠수 있는 부분이 있습니다. WAS에서 자동으로 생기는 쿠키값은 개발자가 컨트롤하지 않기 때문에 간과할수 있습니다. 예를들어 로그인을 하고 로그인 정보를 세션에 넣어서 재사용하고 있다면 그것 또한 쿠키를 사용하고 있는 것입니다. 따라서 개발자가 직접 만든 쿠키가 아니더라도 서버 세션을 사용하고 있다면 동일하게 쿠키를 사용하는것으로 판단하고 조치가 필요한지 확인해야 합니다. 이 경우 프로그램 수정이 아니라 WAS나 WEB서버 설정이 변경되어야 하니 해당 제품의 사이트를 참고하시는게 좋을것입니다. 또한 SSL적용되지 않은 사이트에서 SameSite=None, Secure 설정을 할 경우 기존의 다른 기능들이 안될수 있으니 주의가 필요합니다.

참고로 많은 사이트에서 iframe으로 호출하는 가장 유명한 서비스 중 하나인 유튜브는 당연히 조치가 되어있으므로 유튜브에서 생성한 쿠키를 확인해보는것도 추천합니다.