곧 Chrome에서 document.domain을 설정할 수 없습니다 ⚠️

Chrome will disable modifying document.domain to relax the same-origin policy

구글에서 최근 document.domain에 대한 크롬 브라우저의 변경을 예고했습니다. 브라우저 3사는 서로 유사하게 정책을 가져가기 때문에 아마 firefox, safari도 비슷한 형태로 변화될 가능성이 높겠죠.

요약하자면 Chrome 106+ 이후부턴 기본적으로 document.domain에 대한 setter가 제거된다고 합니다.

document.domain

사실 document.domain은 문제가 좀 있습니다. document.domain이 도메인의 포트 번호 부분을 무시하기 때문에 만약 동일한 도메인에서 포트가 다른 서비스로 서빙되는 경우 원래대로면 서로는 same-origin이 아니지만, document.domain을 변경할 수 있기 때문에 same-origin으로 위장할 수 있습니다.

또한 서브도메인 상태에서도 유사하게 악용할 수 있는데, 포트 단위로 서비스를 운영하는 등등 일부 경우에서 브라우저의 강력한 보안 정책 중 하나인 same-origin이 깨지는건 리스크가 높죠. 그래서 보통 document.domain을 변경해서 사용하는 것을 권장하진 않습니다. (특히 사용자에게 제어권을 주는건 더더욱 😳)

for security engineer

우리 입장에선 크게 달라질 건 없습니다. 오히려 document.domain으로 우회하거나 공격에 사용할 수 있었던 부분이 막히기 때문에 내용이라도 알고 있어야 삽질을 덜 하겠네요.

for developers

만약 document.domain 을 변경하여 브라우저 정책을 우회적으로 사용하도록 구성된 서비스는 아마 바로 영향을 받을겁니다. 브라우저에서 서로 다른 document.domain을 바라보기 때문에 이를 이용한 우회 통신은 제한된다고 봐야겠네요.

화이팅 😆

References

https://developer.chrome.com/blog/immutable-document-domain/ https://developer.mozilla.org/ko/docs/Web/API/Document/domain#setter