Browser History / Visited Link Theft

Detects CSS-based browser history sniffing patterns and sensitive data in browser history.

zakirkun Updated

File contents

Browser History Theft

Overview

CSS-based history theft uses :visited pseudo-class timing differences to detect which URLs a user has visited. While modern browsers have mitigated this, JavaScript APIs can still expose visited URLs through timing channels or getComputedStyle attacks. Additionally, sensitive data in URLs persists in browser history.

Remediation

  • Avoid putting sensitive data in URLs
  • Use window.history.replaceState() to remove sensitive parameters after processing
  • Set Cache-Control: no-store for pages with sensitive URL parameters

zakirkun/ice-tea/tree/main/skills/web/browser-history-theft commit dc6a080d5a

Frequently asked questions

npx skillmds@latest add zakirkun/browser-history-visited-link-theft