例如,当我输入 URL 并按下回车键时abc.com
,我并不期望最终会转到其他地方。如果没有包含该 URL 的网站,我期望会出现错误页面。但事实是,我被重定向到另一个 URL(甚至是另一个域名:)abc.go.com
。
我不是网络技术专家,但据我所知,重定向主要分为两类:DNS/注册商重定向(不可见)和服务器端重定向(可见,http 代码 301 或 302)。
如何在 Chrome 中防止这些服务器端重定向?最好的情况是,我会收到一个提示页面,告诉我该页面有不同的 URL 或 IP,询问我是否要继续。
另一个例子是,hackoverflow.com
我从这里被重定向到两个网站,在第一次重定向之后,我可以瞥见一个设计好的主页,然后被转到一个停放网站。我想在这次双重重定向中途停下来,检查第二个网站。
答案1
我意识到这远非一个完美的答案,因为这只适用于提供内容的回应,但我决定发布它,因为目前没有有用的、可操作的答案。
作为一种快速而简单的解决方案,您可以使用调试器(可通过大多数浏览器访问F12
)CTRL+SHIFT+I
来让自己有机会选择退出重定向。
在页面运行其自身的任何脚本之前,在控制台中运行此行:
window.onbeforeunload = function(){ return 'Leave page?'; };
例如,使用 Chrome:
- 打开调试器(
F12
)并切换到来源标签。 - 按下
F8
可将调试器置于单步执行模式。 - 导航到有问题的页面。它将开始加载,但调试器不允许脚本运行。
- 将上述代码粘贴到控制台并按回车键。
- 再次按下
F8
以允许脚本运行并让页面完成加载。 - 现在,您将在任何重定向发生之前看到提示,并且您有机会取消它。
- 如果页面反复尝试重定向您,您可以告诉 Chrome 不要再次显示该对话框。页面进一步尝试将您导航到其他地方将会失败,且不会发出任何提示。
答案2
esc
阻止重定向发生的另一种临时方法是在重定向发生之前按下按钮。
esc
停止页面中 js 的执行,也停止 html 的渲染,因此如果按得太快,重定向不应该发生,但页面可能不会完全加载。调查页面内容和其他信息(如 cookies)会很有用
答案3
根据我的经验,在每种情况下,都没有很好的方法来处理这个问题。就在前几天,我在分析银行网络钓鱼诈骗时遇到了这个问题。我自己也在寻找有关这个问题的提醒,因为它已经有一段时间了。我尝试在 Chrome 中更改一些内容,让页面停止自动重定向,但没有任何效果。它不起作用的原因是因为页面顶部的内容如下:
<html>
<head>
<meta content='0;URL='https://scam-website-two.scam'' http-equiv='refresh' />
</head>
<!-- other HTML here -->
</html>
该meta
标签在到达第一个诈骗网站后会重定向到第二个诈骗网站。有关使用该meta
标签进行重定向的更多信息这里。
因此,据我所知,我无法阻止重定向。但我不在乎,因为对于这种烦人的情况,我的后备解决方法是将网页下载为文本文件并分析内容,这正是我所做的。
有多种方法可以做到这一点。由于我在专用的 Linux VM 中工作,用于分析诈骗,因此我在终端 (bash) 中执行以下操作:
content=$(wget http://scam-website-one.scam -q -O -)
echo $content > scam.html
总之,基本算法是:
- 选择语言
- 对问题 URL 执行 HTTP GET
- 将输出字符串存储到变量
- 将输出字符串保存到文件
就像我之前提到的,这至少可以帮助您了解导致重定向的原因。下载文件后,我删除了该meta
标签,然后我就可以查看该页面了。
答案4
据我所知,没有办法禁用此功能。
更重要的是,这样做会破坏 Web 服务器所依赖的一个非常基本的功能。您可以预料到很多网站会停止运行。
至少,所有“www”重定向将停止工作 - 所有“http-to-https”重定向将停止工作
因此你必须手动输入'https://www' 在每个域之前。
除此之外,网站内的许多子页面也将停止运行。
因此,如果 Chrome 和 Firefox 开发人员使得在浏览器级别完全禁用重定向变得非常困难或不可能,我不会感到惊讶。