V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
ejin
V2EX  ›  分享创造

《防止垃圾站将父窗口跳转脚本》防止打开网站后,父窗口被跳转到其他页面!

  •  2
     
  •   ejin · 2016-05-12 10:50:51 +08:00 · 2458 次点击
    这是一个创建于 3154 天前的主题,其中的信息可能已经有所发展或是发生改变。
    防止垃圾站将父窗口跳转插件……实在不知道叫什么名字好,就这么叫吧。

    你是否在搜索引擎打开一个新窗口来展示页面的时候,父窗口却被跳转到广告页面了?(就是搜索引擎所在的那个窗口),懵逼了有木有?号称最屌的 Chrome 也没解决,乌云上还有过分析,各种浏览器处理该问题的策略有所不同,有的允许跳转掉父窗口,有的不许,如果被跳转到的是一个高仿的登录界面,你还认为它没有安全隐患吗?(你用百度就跳转到百度的高仿登录窗口,你用谷歌就跳转到谷歌的高仿登录窗口,甚至还可以通过 referer 抓取父窗口的页面,去模拟一个一模一样的出来)

    这个问题其实我也遇到过多次,然而今天看到有人发帖提出此问题 而另外 2 人提出了方案和逻辑 于是我就顺手写出来了……

    逻辑其实很简单,如果父窗口 /父框架 /上一页是当前访问的网页的同一站点,则不做任何处理……否则……呵呵

    一个此安全隐患的演示页面 https://mathiasbynens.github.io/rel-noopener/
    那个帖子是 https://www.v2ex.com/t/277991 (这里也有该问题的演示)
    我的脚本发布在这里 https://greasyfork.org/zh-CN/scripts/19615-%E9%98%B2%E6%AD%A2%E5%9E%83%E5%9C%BE%E7%AB%99%E5%B0%86%E7%88%B6%E7%AA%97%E5%8F%A3%E8%B7%B3%E8%BD%AC%E8%84%9A%E6%9C%AC

    另外链接的属性里加上 rel=noopener 或许也可以解决此问题,但是你访问的网站,它不一定是你的网站啊……
    第 1 条附言  ·  2016-05-12 11:26:47 +08:00

    这是qcloud提供的视频录像,我想常常使用搜索引擎的,肯定遇到过这类

    (视频已获得转载授权,见原帖25-26楼)

    http://v.youku.com/v_show/id_XMTU2NzEyNTI2OA==.html

    qcloud
        1
    qcloud  
       2016-05-12 11:07:14 +08:00
    cool ~
    ejin
        2
    ejin  
    OP
       2016-05-12 11:50:37 +08:00
    @qcloud 一共也就 2 行代码 但是却能解决问题…… 勉强还行吧 主要是别人都提供好了思路和关键代码
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1096 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 18:53 · PVG 02:53 · LAX 10:53 · JFK 13:53
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.