alert('测试'.length怎么用)的输出结果是

可能大家在写网页的时候经常给超链接加个属性 target="_blank",意思就是在浏览器新的窗口打开此超链接但是大多数人应该都注意不到这个属性是有安全缺陷的。

具体说明下:比如说当前网页中有个a标签的是

点击后跳转到的新的窗口的网页拥有了浏览器";} }, 3000);

请点击此超链接测试有安全缺陷的情况:这是测试有安全隐患的超链接

这个安全隐患就可能被别有用心的人所利用,用户可能很少注意地址栏的变化这样的话如果做个和正规网站一样的界面可能就很嫆易以假换真,后果还是比较严重的

再次测试一下没有该安全缺陷的情况:这是测试没有该安全隐患的超链接

当站点在链接中使用target="_blank"来打開新页卡或窗口时,该站点就通过window.opener API给了新页面对原有窗口的访问入口并授予了一些权限。这其中的一些权限被跨域限制拦截了但是window.location是漏网之鱼。

这不仅存在钓鱼攻击的问题还涉及到隐私问题,因为新打开的站点对原有页卡的浏览地址有着持续的访问权它可以轮询这個信息,并得到结果幸亏这个行为看起来被跨域限制阻止了,因此即便我或许可以持续访问你不想让我知道的信息完整的规范里应该包含健全的限制规则。

更新: 在我最开始写这个的时候我提出了一种浏览器间谍场景,该场景中不良分子可以更彻底地侦测用户浏览历史现在我觉得那并不准确,因此我修改了表述

为了限制 window.opener的访问行为,原始页面需要在每个使用了target="_blank"的链接中加上一个rel="noopener"属性然而,火狐鈈支持这个属性值所以实际上你要用 rel="noopener noreferrer"来完整覆盖。尽管某些预防措施可以通过脚本实现正如在Twitter上看到的,但这在Safari上并不起作用

这个問题并不知名,而且完全被低估了它在Web Hypertext Application Technology Working Group邮件列表中被提出 在我看来,这个浏览器行为的风险远大于潜在的好处

我要回帖

更多关于 length怎么用 的文章

 

随机推荐