我正在尝试在新标签中的Course Report中打开一个页面。通常我会这样做,如下:
<a href="https://www.coursereport.com/schools/flatiron-school" target="_blank">https://www.coursereport.com/schools/flatiron-school</a>
但是课程报告做得有些奇怪。如果我使用该链接,则它:
我对
感兴趣我似乎无法直接在stackoverflow中进行复制,但这是一个HackMD文档,您可以在其中查看行为https://hackmd.io/s/Hy1Ln7g8X
答案 0 :(得分:2)
window.opener
返回对打开当前窗口的窗口的引用 window.close()
关闭当前窗口因此,您可以通过创建2个文件来重现行为:
1.html
<a href="2.html" target="_blank">Go to second page</a>
2.html
<script>
window.opener.location="about:blank";
window.close();
</script>
从目标页面重写源选项卡可用作reverse tabnabbing,这很危险。
反向Tabnabbing是一种攻击,其中从目标页面链接的页面能够重写该页面,例如,将其替换为网络钓鱼站点。由于用户最初位于正确的页面上,因此他们不太可能注意到它已更改为网络钓鱼站点,尤其是该站点看起来与目标站点相同。
根据window.opener
的文档所述,您可以使用属性来阻止此行为,但这仅在某些浏览器(Firefox 52 +,Chrome 49 +,Opera 36+, Safari 10.1 +):
在some browsers中,原始锚标记上的
rel="noopener"
属性将阻止设置window.opener引用。
<a href="2.html" target="_blank" rel="noopener">Go to second page</a>
我还发现this page关于rel=noopener
,其中也提到了旧版浏览器的可能解决方案:
对于较旧的浏览器,您可以使用
rel=noreferrer
来禁用Referer HTTP标头,或者使用以下JavaScript解决方法(可能触发弹出窗口阻止程序):var otherWindow = window.open(); otherWindow.opener = null; otherWindow.location = url;
您可以为rel
属性组合值,例如rel="noreferrer noopener"
。
答案 1 :(得分:0)
您的Javascript代码中的Body上有一个click事件。我认为这就是问题。