火狐浏览器历史劫持问题可通过五步防护解决:一、启用增强型跟踪保护严格模式;二、在about:config中禁用dom.history.pushstate/replacestate.enabled;三、清除可疑站点全部本地数据;四、将network.http.redirection-limit设为0并启用dom.disable_window_open_feature.location;五、安装uBlock Origin并添加重定向过滤规则。

如果您在使用火狐浏览器时发现点击返回按钮跳转到异常页面、历史记录被静默插入伪造条目,或后退行为完全失效,则很可能是网页通过 history.pushState/replaceState API 恶意篡改了浏览器历史栈。以下是针对该问题的底层防护设置:
一、启用增强型跟踪保护严格模式
严格模式可主动识别并拦截已知用于历史栈劫持的恶意脚本域名与混淆重定向服务端点,尤其对利用 pushState/replaceState 静默覆盖 history.stack 的攻击具备实时阻断能力。
1、启动火狐浏览器,点击右上角三条横线菜单按钮。
2、选择“设置”进入配置界面。
3、在左侧导航栏点击“隐私与安全”。
4、向下滚动至“增强型跟踪保护”区域。
5、在保护级别下拉菜单中选择严格模式。
6、确认页面下方“全方位 Cookie 保护”状态为已启用。
二、禁用危险的 history API 权限(via about:config)
Firefox 未提供图形化开关禁用 history.pushState/replaceState,但可通过修改底层配置项强制禁用其执行权限,使第三方脚本无法调用这些 API 修改历史栈。
1、在地址栏输入about:config并回车,点击“接受风险并继续”。
2、在搜索栏输入dom.history.pushstate.enabled。
3、双击该项,将其值由 true 改为false。
4、再次搜索dom.history.replacestate.enabled。
5、双击该项,同样将值设为false。
三、清除已被污染的历史记录与站点数据
已被劫持的页面可能已在本地写入伪造历史条目、持久化脚本缓存或 Service Worker,需彻底清除对应域名的全部本地存储,以中断劫持链路。
1、点击右上角菜单按钮,选择“历史”→“管理历史”打开“我的足迹”窗口。
2、在右上角搜索框中输入可疑域名(如跳转来源或异常返回目标网址)并按回车。
3、在搜索结果中右键点击该站点条目,选择清除此站点信息。
4、确认操作后,该站点的浏览历史、缓存、Cookie、表单数据及脚本存储将全部删除。
5、关闭“我的足迹”窗口。
四、禁用自动重定向响应头处理
部分劫持行为通过服务器返回的 HTTP Location 响应头触发非用户主动的重定向,关闭该机制可防止服务端诱导式历史污染。
1、在地址栏输入about:config并回车,点击“接受风险并继续”。
2、在搜索栏中输入network.http.redirection-limit。
3、双击该项,将数值修改为0。
4、再次搜索dom.disable_window_open_feature.location。
5、双击该项,将其值设为true。
五、安装 uBlock Origin 并启用重定向过滤规则
uBlock Origin 支持通过自定义过滤语法拦截基于 JavaScript 的 location.assign()、location.replace() 等重定向调用,同时可订阅社区维护的重定向专用规则集,覆盖大量历史劫持脚本。
1、访问https://addons.mozilla.org,搜索“uBlock Origin”。
2、认准开发者为Raymond Hill,点击“添加到 Firefox”。
3、安装完成后,点击地址栏右侧盾牌图标,选择“打开面板”。
4、点击面板底部齿轮图标进入“仪表板”,切换至“过滤器”选项卡。
5、在“自定义”区域的“从URL添加过滤器列表”栏中,粘贴以下链接并点击“添加”:https://raw.githubusercontent.com/uBlockOrigin/uAssets/master/filters/redirect-filters.txt。


















