首先启用隐私保护模式阻止网站跟踪,再通过禁用JavaScript切断历史API调用,接着使用内容拦截器扩展屏蔽可疑脚本,最后手动锁定History.db文件为只读以防止被修改。

如果您在使用 Safari 浏览器时发现某些网站擅自修改了您的浏览历史记录或试图操控导航行为,这可能会影响您的浏览体验甚至隐私安全。以下是解决此问题的具体步骤:
本文运行环境:MacBook Air,macOS Sonoma
一、启用隐私保护模式阻止网站跟踪
通过开启隐私保护功能,可以限制网站对浏览器历史记录的访问和修改能力,防止其利用 JavaScript 操控历史堆栈。
1、打开 Safari 浏览器,点击顶部菜单栏的Safari,选择偏好设置。
2、切换到隐私标签页。
3、勾选阻止跨站跟踪和隐藏 IP 地址选项。
4、在网站跟踪部分选择始终阻止。
二、禁用 JavaScript 以阻止历史 API 调用
网页通常通过 JavaScript 中的 history.pushState、history.replaceState 等方法修改历史记录,关闭 JavaScript 可有效阻断此类行为。
1、进入 Safari 的偏好设置,点击安全性标签。
2、取消勾选启用 JavaScript选项。
3、关闭设置窗口并刷新目标网页,此时网站将无法调用历史记录相关接口。
注意:禁用 JavaScript 可能导致部分网站功能异常,请根据实际需要临时开启或关闭。
三、使用内容拦截器扩展屏蔽特定脚本
通过安装支持规则过滤的 Safari 扩展,可精准拦截试图修改历史记录的脚本代码,实现细粒度控制。
1、前往 App Store 下载并安装支持自定义规则的内容拦截器,如 AdGuard for Safari 或 Content Blocker。
2、在扩展设置中添加针对 history API 的屏蔽规则,例如使用以下正则表达式匹配可疑脚本:
/history\.pushState|history\.replaceState|window\.onpopstate/g
3、启用该规则并重启 Safari 浏览器。
四、手动清除并锁定历史记录文件
通过系统权限管理,限制 Safari 对历史记录数据库的写入权限,从而防止被恶意修改。
1、关闭 Safari 浏览器。
2、打开访达,按下 Shift + Command + G,输入路径:~/Library/Safari/。
3、找到名为 History.db 的文件,右键点击选择显示简介。
4、在“共享与权限”部分,将当前用户权限从“读与写”改为只读。
5、如有需要,可点击锁图标并输入密码确认更改。










