JS PopUnder 原理研究:初探

popunder 技术是用来在用户正在浏览网页时,后台偷偷打开一个窗口并加载广告。

这项技术看似简单,实际上却很复杂,涉及到多浏览器兼容,以及相同浏览器不同版本的实现方式也不一样。

之所以如此,是因为直接给用户弹出窗口会极大地影响用户体验,并且这种技术被广泛地用于各种 malvertising,已经构成了对用户的骚扰。所以基本上各大浏览器都在不断地限制 pop 的方式。到现在,已经不能随意地给用户弹出窗口了。

那么,如何实现呢?

在研究 popunder 的时候查阅了想关资料,下面是部分有用的代码:

https://gist.github.com/cam-gists/2855187
https://stackoverflow.com/questions/4261784/making-a-window-pop-under-in-chrome

这些代码都是几年前的,基本上都是当时有用,现在则失效了。
它们的原理包括以下几点:

  1. 调用 window.open 方法打开新窗口
  2. 构造点击事件,触发响应函数,再调用 window.open
  3. 监听全屏点击事件,触发响应函数,顺势调用 window.open

这三者的不同在于,第1、2条方法理论上可以无限地 popunder,而第3条则只能在用户点击了网页的时候再 pop 一个窗口出来。

当然,仅仅如此是不够的,这样弹出来的窗口会遮住用户,极大影响用户体验,用户会立即关闭这个广告,弹了还不如不弹。

如何不打断用户的浏览?

所以真正的弹窗,也就是 popunder,是在后台悄悄地弹出来,等用户看完这个页面并关闭之后,才会看到那个广告页面。

其实现在后台弹窗已经不太可能了,更常用的做法是这样的,用户在浏览A网页,不小心点了一下,A弹出一个B网页,此时主窗口由A切换到了B,然后使用某种奇淫巧技,迅速地,把主窗口切换回A。

这是重点,也是各大浏览器重点关照的地方,在浏览器的早期,是可以用 window.focus() 把当前窗口切换回来的,但后来也不行了。

现状

也就是说,想正儿八经地实现 popunder,在新版的浏览器上已经不可能了,所以这是个难点,一旦实现出来,就可以靠卖服务赚钱了。

现在网上能明确实现这个功能的,都开了公司在卖代码了,分别是这两个:
http://popunderjs.com/
https://getpopunder.com/

价格非常之贵,199 美元/年 起步。如果是广告平台用,那就是 999 美元/年。这么一个小小的功能,就能卖如此之贵,可见其商业价值。

好了,今天先讲这些,下次再讲讲研究 popunder 过程中的逆向和反逆向


接下来是广告时间:
我的简书:http://www.jianshu.com/u/0708f50bcf26
我的知乎:https://www.zhihu.com/people/never-younger/answers
我的公众号:OutOfRange

有事欢迎骚扰 ~

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 12,259评论 4 61
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,638评论 25 708
  • 挥汗如雨的日子更多是为了减掉这一身的脂肪,从开始的单纯减肥,到最后心无旁骛只为流汗,这样一种人生体验的升华,就是我...
    于兔阅读 685评论 0 0
  • 《盖尔草原的日与夜》是我很久之前就想写的故事集,并准备把它作为送给孩子的礼物。虽然跟那些大师的作品相差甚远,但一想...
    年糕佳爸阅读 379评论 0 0
  • 又一个“六一”儿童节到来了,城关区人大冯主任代表区委区政府来学校慰问孩子们,学校准备了好几天了,合唱、陶笛队...
    方圆_22cf阅读 170评论 0 0