我们经常使用HTMLtarget="_blank"或window.open()在新窗口中打开页面。//inhtmlopengoogle//injavascriptwindow.open("www.google.com")但是,当新打开的页面指向a时,我们暴露于钓鱼网站的漏洞。新页面通过window.opener对象访问链接页面的某些部分。例如,window.opener.location可用于将启动页面的用户指向一个伪造的网络钓鱼站点,该站点模仿原始站点的外观并执行各种令人讨厌的事情。鉴于用户信任他们已经打开的页面,这可能非常有效。为了防止这种情况,我们可以:在HTML中使用rel="noopener和target="_blank"。在Javascript中使用opensecurelyinanewtab,确保重置opener属性:constnewWindow=window.open("someLink.com");newWindow.opener=null;后续:现在看来noreferrer是多余的,所以noopener`应该足以满足HTML的使用。作者:Daniel译者:前端小智来源:js-craft原文:http://www.js-caft.io/blog/window-open-and-target_blank-have-a-security-vulnerability/