歡迎來到我們的技術文章專欄!
今天我們來談談「廣告顯示手法」。不少廣告商為了要增加廣告的曝光以及點擊率,會使用各種手法強迫使用者顯示廣告。例如彈出式視窗、內嵌廣告、強制跳轉等等。但這樣的手法有什麼好提的呢?今天有一個很特別的案例,讓我們來看看一個網站「1kkk.com 極速漫畫」。
Image may be NSFW.
Clik here to view.這是一個常見的網路漫畫網站,接著點擊進去漫畫頁面。
Image may be NSFW.
Clik here to view.網站中充斥著煩人的廣告,並且突然一閃而過 Safari 的「閱讀列表」動畫。怎麼會突然這樣呢?讓我們打開「閱讀列表」一探究竟。
Image may be NSFW.
Clik here to view.Image may be NSFW.
Clik here to view.
打開閱讀列表之後,我們赫然發現裡面被加了非常多廣告的頁面!
可以看以下影片示範:
這是怎麼做到的呢?就是一種利用 JavaScript 控制滑鼠點擊的變形應用。點選「網頁檢閱器」或是「開發者工具」,會看到一段奇怪的 JavaScript 控制滑鼠的點擊行為。
Image may be NSFW.
Clik here to view.
分析節錄後的 code 如下:
<!DOCTYPE html><html><head><script>varforce_add_url_to_readinglist=function(target_url){try{varfake_element=document.createElement('a');fake_element.setAttribute('href',target_url);fake_element.setAttribute('style','display:none;');// https://developer.mozilla.org/en-US/docs/Web/API/event.initMouseEventvarfake_event=document.createEvent('MouseEvents');fake_event.initMouseEvent('click',false,false,window,0,0,0,0,0,false,false,true,false,0,null);fake_element.dispatchEvent(fake_event);}catch(error){// nothing.}};varurl='http://google.com/?'+Math.random().toString().substr(1);force_add_url_to_readinglist(url);</script></head><body><h1>Test: FORCE_ADD_URL_TO_READINGLIST</h1></body></html>
利用「initMouseEvent」模擬滑鼠的點擊,在 URL 上按下 Shift 鍵點擊。在一般瀏覽器中是「開啟新視窗」,在 Safari 中則是「加入閱讀清單」了,因此形成廣告視窗不斷加入閱讀清單的現象。廣告商利用這種手法增加廣告的點擊率,只要瀏覽器沒有安裝阻擋廣告的套件或者是阻擋「彈出式視窗」,你就會成為流量的貢獻者。
經過我們的測試,Internet Explorer、Mozilla Firefox 不會受這類攻擊影響,Google Chrome、Opera 則會被內建的 Pop-up 視窗阻擋功能擋下。但若是直接模擬點擊,則全數瀏覽器都會受影響導向至 URL。雖然這種類型的攻擊不會造成實質上的損失跟危害,但若是結合其他惡意手法將可以造成攻擊。例如透過網站掛碼將使用者導向至惡意網站等等。
若要避免此類型攻擊,有以下幾個建議方案:
- 安裝 NoScript 類型套件,僅允許可信賴的網站執行 JavaScript
- 開啟「彈出式視窗」阻擋功能,並將網站安全性等級提高。
- 安裝 AdBlock 等廣告阻擋套件(但會影響網站營收)
- 使用最新版本瀏覽器以策安全
網頁型的攻擊越來越多樣化,除了依賴瀏覽器本身的保護並輔以第三方安全套件之外,更需要使用者本身的安全意識,才能安心暢快的瀏覽網路!