chromium:“停止加载此页面”按钮会从 URL 栏中删除 URL

chromium:“停止加载此页面”按钮会从 URL 栏中删除 URL

当我在 Chromium URL 栏中输入 URL 时,如果http://10.10.10.3:80服务器当前无法访问,当我命令 Chromium 停止尝试加载并按下“停止加载此页面”按钮时,URL 就会消失。这太邪恶了!

比如说,我输入的端口错误,所以我想用另一个端口再试一次。我必须再次输入整个 URL。

当我按下“停止加载此页面”按钮时,URL 应该保留在我输入的位置,以便我可以更正它。

相反,它被之前的“上次成功的 URL”所取代。

有没有什么办法可以修复这个邪恶的功能?

答案1

这种行为是经过设计的,几年前,所有浏览器的开发人员都付出了巨大的努力,使页面无法显示错误的 URL。实际上,以前这种情况是可以发生的,直到这种技术开始被恶意软件使用。

您要求的行为是一个安全漏洞。如果可以显示带有错误 URL 的页面,攻击者可以将您银行的 URL 与他自己的页面一起显示,这样您就可以输入您的帐号和密码,然后清空您的所有帐户。这种情况确实发生过,直到这个漏洞被关闭。

只有在新标签页上才会显示错误的 URL,这是自动发生的。它在这里起作用的原因是没有显示真正的页面,因此没有安全原因不显示输入的(错误)URL。

这种行为并非 Chromium 所特有。我遇到的每个浏览器都完全一样,因为这是安全的做法。

此外,浏览器开发人员甚至使抛出的对话框无法遮挡地址栏,因为当无法修改 URL 本身时,攻击者会立即使用这种技术来模仿虚假的地址栏。

我能提供的唯一解决方案是在点击 之前复制一个较长的 URL ,我已经这样做了。 为了以防万一,你应该养成在点击 之前执行和Enter的习惯 。CtrlACtrlC


攻击者可以使用以下方式使用您要求的选项来获取您的银行登录信息:

  • 攻击者的附加组件或 JavaScript 脚本会抛出他自己的网站, attacker.com/exploit该网站看起来与您的银行完全一样,只是地址栏暴露了它。
  • 攻击者希望在地址栏中显示您的银行 URL 或类似的内容,但是这是不可能的,因为所有可以实现这一点的 API 都已经被开发人员仔细地剔除了。
  • 然后,攻击者会调用一个 URL 与您的银行 URL 非常相似或名称显示完全相同(Unicode 技巧)的网站。
  • 该网站不存在,但错误的 URL 会保留在地址栏中。结合显示的页面,这看起来就像您真的在银行的网站上。
  • 你登录后,几秒钟后,你所有的银行账户都被清空了。你所有的积蓄都化为乌有。银行理所当然地声称这是你的错,并且什么都不退还。

答案2

这是不可能的,因为网络流量的工作方式,每个请求都有/需要一个结果状态,并且不能是无状态的,这就是为什么 chromium 会删除您尝试连接的地址(除了这种事情的安全性方面)。

当你请求连接到一个域名/ip 时,结果可能是:200(页面加载正常)、404(未找到)、408(超时)等。当你在到达某个状态之前取消请求时,很明显,由于取消操作,浏览器不会显示任何结果/url,并且没有表示“取消请求”的 HTTP 状态 XXX 代码(http 请求列表)。

没有什么是不可能的,解决这个问题有三种可能的方法:

  • 为此事创建扩展
  • 修补 Chromium 以添加xxx已取消请求的状态(非 RFC)(请注意,Chromium 需要很长时间才能构建)
  • 降低默认值timeout(408),这是如果不打补丁,在 Chromium 上是不可能的,讨论这里这里也一样。
    • 承认这可能会引起其他不理想的效果,例如网站超时变慢。
    • 另请注意,这可以在 Firefox 上通过network.http.connection-timeout设置来实现。

答案3

良好实践

有一个简单的方法可以避免这种烦恼,
只需按下Ctrl TCtrl N
打开一个新选项卡或新窗口并在那里输入新的 URL。

如果发生手动中断,则不会预加载页面,并且 URL 不会从栏中删除。

使固定

如果您想修复它,您可能必须为每次更新手动修补源代码并重新编译它。

您可能会发现下载源代码、编写分支并将差异应用于以下每个更新版本很有用。但请记住,目前的行为是为了避免欺诈企图……因此,最佳做法是上述做法。

最后的评论(Tl;dr)

我知道改变我们的行为往往比找到正确的程序设置更容易......但事实不应该如此......

事实是,这一次有一个严肃的理由建议我们改变我们的行为,而且这可以被视为良好的做法。

在这种情况下,建议不要想方设法改变程序的行为,无论如何,而是改变(仅通过按两个键)我们的行为以避免潜在的风险。

相关内容