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

有事歡迎騷擾 ~

相關文章
相關標籤/搜索