JS PopUnder 原理研究:初探

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

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

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

那么,如何实现呢?

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

https://gist.github.com/cam-g...
https://stackoverflow.com/que...函数

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

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

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

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

如何不打断用户的浏览?

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

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

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

现状

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

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

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

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


接下来是广告时间:
个人简书:http://www.jianshu.com/u/0708...
个人知乎:https://www.zhihu.com/people/...
个人公众号:OutOfRange

有事欢迎骚扰 ~

相关文章
相关标签/搜索