防止外部页面重定向我的(父)页面

preventing external page from redirecting MY (parent) page

本文关键字:页面 我的 重定向 外部      更新时间:2023-09-26

在Mac OS 10.7上使用最新版本的Chrome。

我认为这是一些聪明的javascript,它使这个网页上的人们能够:

http://www.chairworks.com/

。关闭我(父)页面,该页面首先打开了他们的(chairworks.com)页面。我没有使用 javascript 打开它们,而是使用 target="_blank" 属性的 <a> 标签打开它们。

如果我禁用javascript,那么行为就会停止。

<a href="http://www.chairworks.com" target="_blank">www.chairworks.com</a>

我希望 chairworks.com/的页面只是在另一个选项卡/窗口中打开......但我发现,一旦新的浏览器选项卡打开,它就会关闭,然后我的页面(父选项卡/窗口)被重定向到 chairworks.com 页面。

有点粗鲁。

有人可以指出我什么代码使他们能够做到这一点吗? 我该如何预防它? (假设我希望链接按预期运行,例如在我的演示页面中。

我相信正确的做法是设置相应的链接类型属性,以便浏览器不会为目标窗口提供和opener引用。

<a href="https://untrusted-site.org" target="_blank" rel="noreferrer noopener">Link</a>

您可以在此处阅读有关链接类型的更多信息:https://developer.mozilla.org/en-US/docs/Web/HTML/Link_types

这是他们正在使用的脚本:

setTimeout('redirect_page()',0);
function redirect_page(){if (window.opener) { window.opener.location.href = '/home.html'; window.close(); } else { location.href = '/home.html'; }}

至于如何规避它(只是一个想法):
创建您自己的空白页,其源设置为 about:blank。当它加载时(或超时后),您可以向该窗口编写一些代码,然后打开有问题的链接。然后,有问题的链接会关闭您的缓冲区页面。!!给用户力量!

编辑:看起来你也可以home.html呵呵命名你的页面,但这不是一个可行的解决方案。

最终编辑:简单逻辑的人...

<a href="http://www.chairworks.com/home.html" target="_blank">www.chairworks.com</a>适用于所有人,不需要JavaScript。
请参阅此工作 jsfiddle 示例。

正如@GitaarLAB所解释的,目标网站正在使用 window.opener 属性来访问您的页面。自己使用一些Javascript,中间有一个about:blank页面,可以帮助你减少他们对你页面的访问。就像:

 <a href="http://www.chairworks.com/" target="_blank" onclick="var w = window.open('about:blank'); w.opener = null; w.open('http://www.chairworks.com/'); return false;">http://www.chairworks.com/</a>

一些注意事项:

  1. 我将href属性留给未启用JS的用户(你猜怎么着!目标网站也不会有JS!;),或者像搜索引擎这样的网络爬虫(只有那些不关心JS的东西,虽然
  2. 在重定向到目标网站之前,您可以通过重置新窗口的window.opener属性来切断反向链接。
  3. 并且打开目标网站后,有一个return false;可以防止正常的浏览器使用hreftarget属性。