# `:visited`를 더 개인화 하기 - 이미 방문한 링크의 프라이버시 강화

> Clean Markdown view of GeekNews topic #20257. Use the original source for factual precision when an external source URL is present.

## Metadata

- GeekNews HTML: [https://news.hada.io/topic?id=20257](https://news.hada.io/topic?id=20257)
- GeekNews Markdown: [https://news.hada.io/topic/20257.md](https://news.hada.io/topic/20257.md)
- Type: news
- Author: [xguru](https://news.hada.io/@xguru)
- Published: 2025-04-11T09:31:02+09:00
- Updated: 2025-04-11T09:31:02+09:00
- Original source: [developer.chrome.com](https://developer.chrome.com/blog/visited-links)
- Points: 4
- Comments: 1

## Topic Body

- 오래된 웹 보안 문제인 `:visited` 링크 스타일링을 통한 "사용자 방문 이력 노출" 문제를 해결하기 위해 새로운 기능을 도입  
- Chrome 136부터 `:visited` 기록을 "분할 저장(partitioning)"함으로써, 이 공격들을 원천 차단할 수 있는 구조로 개선  
- 방문한 링크를 시각적으로 구분하는 기능은 유지하면서, 다른 사이트에서 이를 악용할 수 없도록 설계됨  
  
### `:visited` 링크 분할 저장 방식 설명  
  
- 기존 방식에서는 링크를 클릭하면 그 링크가 어떤 사이트에서든 `:visited` 상태로 보여졌음  
- 이는 악성 사이트가 사용자의 방문 이력을 추적할 수 있게 만드는 설계상의 보안 결함이었음  
- 예시: Site-A에서 Site-B 링크를 클릭한 후, Site-Evil에서도 같은 링크가 있을 경우, Site-B는 `:visited`로 표시되어 사용자의 방문 여부를 알 수 있었음  
- 새로운 구조에서는 "사이트 A + 링크 대상 B"라는 조합으로만 방문 기록을 저장함  
- 즉, Site-Evil에서는 사용자가 해당 링크를 클릭하지 않았기 때문에 `:visited`로 표시되지 않음  
- 결과적으로 방문 기록은 더 이상 전역(global)으로 저장되지 않고, "링크 URL + 최상위 사이트 + 프레임 출처"를 기준으로 분리 저장됨  
  
### 동일 사이트 내 링크 처리 방식  
  
- 금속 종류를 조사 중인 사용자가 `metals.com`에서 `site.wiki`의 chrome과 brass 페이지를 클릭했다고 가정  
- 이후, `site.wiki`의 gold 페이지를 방문했을 때 chrome과 brass 링크는 `:visited`로 표시되지 않음 (클릭한 맥락이 다르기 때문)  
- 이를 개선하기 위해 `self-links` 예외 처리 도입됨  
- 동일 사이트 내의 서브페이지 링크는 동일한 컨텍스트에서 클릭하지 않았더라도 `:visited`로 표시됨  
- 이는 사이트가 자체적으로 사용자 방문 이력을 추적할 수 있기 때문에 추가적인 정보 노출이 없다고 판단하여 허용된 것임  
- 단, 제3자 사이트나 iframe 내 제3자 링크에는 이 예외가 적용되지 않음  
  
### 기능 도입 현황  
  
- 이 기능은 Chrome 136부터 정식 도입됨  
- Chrome은 이 기능을 최초로 도입한 주요 브라우저임  
- 개발자 및 보안 연구자들은 GitHub 페이지에서 제안서 확인, 의견 제시, 버그 제보 가능  
- [기능 제안서 GitHub](https://github.com/explainers-by-googlers/Partitioning-visited-links-history)  
- [이슈 제안 및 토론 참여](https://github.com/explainers-by-googlers/Partitioning-visited-links-history/issues)  
- [Chromium 버그 트래커](https://issues.chromium.org/u/2/issues?q=customfield1222907:%22Blink%3EHistory%3EVisitedLinks%22)

## Comments



### Comment 37056

- Author: xguru
- Created: 2025-04-11T20:25:28+09:00
- Points: 1

긱뉴스에서도 :visited 활용해보려고 했는데 보안때문에 거의 되는게 없어서 포기했었는데요.  
이게 모두 반영되면 다양한 스타일링이 가능해질지도 모르겠네요.
