Summary
- W3C의 2010년 1월 작업 초안은
:visited, 선택자 질의,getComputedStyle()을 통한 방문 기록 노출을 지적했다. Mozilla는 독자가 방문한 링크의 색은 보되 페이지 스크립트에는 미방문 스타일 값을 돌려주는 방식을 준비했다. - 2025년 4월 공개된 Chrome 136은 방문 상태를 목적지 URL, 최상위 사이트, 프레임 출처별로 나눴다. 다른 사이트에서 생긴 보라색 흔적이 낯선 페이지로 옮겨 오지 않으며, 자기 사이트의 내부 링크에는 제한된 예외가 있다.
보라색 링크는 독자에게 “이 길은 이미 걸었다”고 말한다. 하지만 웹페이지가 많은 목적지 링크를 늘어놓고 어떤 것이 보라색인지 살피면, 독자가 다른 곳에서 다녀온 길을 추측할 수 있다. 2010년 1월 W3C의 Selectors API Level 2 작업 초안은 이를 방문 기록 탈취 문제로 적었다. 선택자 질의와 getComputedStyle()을 언급하고 querySelectorAll(":visited") 예시까지 들었다. 당시의 경고는 공격 경로를 설명한 것이지 모든 브라우저의 구현 현황표는 아니었다.
색을 없애면 질문도 막을 수 있지만 독자에게 유용한 표시까지 사라진다. Mozilla가 2010년 3월 설명한 Firefox 개발 계획은 표시를 살렸다. 방문 여부에 따른 차이를 색으로 제한하고, 크기나 위치 또는 추가 자원 요청으로 상태가 새는 통로를 줄였다. 배치 계산 경로도 비슷하게 만들었다. 페이지의 JavaScript가 getComputedStyle()을 묻는 순간에는 미방문 링크의 값을 준다. 독자의 눈에는 보라색, 페이지의 질문지에는 파란색 답안이 남는 셈이다.
이 설계는 질문에 대한 답을 숨겼지만 브라우저의 방문 기억 자체는 여러 사이트에 걸쳐 있었다. Chrome의 2025년 4월 설명은 오래된 작동 방식을 A, B, C의 짧은 여행으로 풀었다. A에서 B로 링크를 누른 뒤 C가 같은 B 링크를 보여 주면, C에서도 방문한 것으로 보일 수 있었다. C는 A의 클릭을 본 적이 없는데 그 흔적을 받았다.
2025년 4월 29일 안정판으로 공개된 Chrome 136의 릴리스 기록은 방문 상태를 클릭 당시의 최상위 사이트와 프레임 출처로 나누는 변경을 적고 있다. 자세한 Chrome 설명에는 목적지 URL도 기억의 열쇠로 들어간다. A에서 시작한 B 방문은 A에서 표시할 수 있지만 C는 A의 보라색을 가져오지 못한다. 자기 사이트 페이지로 가는 링크에는 제한적인 예외가 있다. 그 사이트는 원래 자기 페이지 방문을 관찰할 수 있기 때문이다.
2026년 1월 W3C Selectors Level 4 작업 초안은 가능한 대응을 함께 제시한다. :visited를 아예 맞추지 않거나, 페이지 스크립트에 스타일 정보를 숨기거나, 해당 출처가 스스로 알 수 있었던 방문만 표시하는 방법이다. 부록은 목적지, 클릭을 시작한 출처, 최상위 사이트를 한 기록으로 묶는 예를 담았다. 초안은 각 브라우저의 배포표가 아니라 기억의 경계를 설명하는 설계 기록이다.
보라색 링크는 살아남았다. Firefox는 화면의 표시를 유지하면서 페이지의 자를 치웠고, Chrome 136은 각 사이트가 볼 수 있는 기억의 방을 나눴다. 독자는 자기 길을 알아본다. 옆집은 발자국을 훔쳐보는 일에서 물러났다.
회원 브리핑
프로필 심층 컨텍스트
올바른 멤버십 등급으로 로그인하면 전체 브리핑과 출처 노트를 볼 수 있습니다.
Strategic Circle 전용
Strategic Circle
모든 독자에게 공개됩니다. 가입 후 로그인하면 프로필 브리핑를 열람할 수 있습니다.
Strategic Circle 가입하기Leadership Alliance 전용
Leadership Alliance
자격을 갖춘 IP 자산 소유자 및 운영진을 위한 콘텐츠입니다. 로그인하면 Leadership Alliance 브리핑을 열람할 수 있습니다.
Leadership Alliance 가입하기





