如何阻止网站通过脚本重定向至其他网站?
如何阻止网站通过脚本重定向至其他网站?
遇到这种通过脚本直接修改window.location.href的恶意重定向确实挺闹心的,我之前也碰到过类似情况,试试下面这些方法,亲测在Chrome和Edge里都能起到作用:
给uBlock Origin加自定义规则
有时候默认的过滤列表没覆盖到这类针对性的恶意脚本,你可以手动添加规则来废掉它的重定向能力:- 打开uBlock Origin的设置面板,切换到「我的规则」标签页
- 添加这样一条规则:
你的论坛域名##+js(set, window.location.href, noopFunc),把「你的论坛域名」换成你常去的那个论坛的实际域名(比如forum.example.com) - 点击「保存」并刷新页面,这条规则会把修改
window.location.href的操作变成空函数,让它没法跳转
另外别忘了去「过滤器列表」里点一下「更新现在」,确保所有过滤规则都是最新的
用浏览器开发者工具临时拦截
如果只是临时对付一下,可以用开发者工具直接禁用恶意脚本:- 打开论坛页面后按F12调出开发者工具,切换到「源代码(Sources)」标签
- 在搜索框里输入
window.location.href,找到那个注入的恶意脚本文件 - 右键点击这个脚本,选择「禁用脚本」,之后页面就不会执行它的重定向代码了
或者你也可以在window.location.href那一行打个断点,脚本执行到这里就会暂停,你可以手动跳过跳转步骤
试试专门的防重定向扩展
浏览器自带的弹窗拦截对这种脚本触发的重定向效果有限,你可以安装专门的防重定向扩展,比如「Redirect Blocker」,这类工具能精准检测并阻止脚本发起的location跳转,比通用广告拦截更有针对性修改浏览器内容安全策略(进阶操作)
这个方法稍微复杂一点,适合有一定技术基础的用户:- 在Chrome/Edge地址栏输入
chrome://flags/#unsafely-treat-insecure-origin-as-secure(Edge把开头换成edge://flags) - 把论坛域名添加到输入框里,启用这个选项后重启浏览器
- 再打开开发者工具的「安全」标签,手动添加CSP规则,比如设置
script-src 'self',只允许加载本站的脚本,从根源上阻止第三方广告脚本注入
- 在Chrome/Edge地址栏输入
备注:内容来源于stack exchange,提问作者Danny




