記得有一陣子,FB很流行"必須先按讚才能看影片"的分享貼文。討厭強迫中獎,我多半選擇不看,再不然就是自己Google去找YouTube原始影片。前陣子在JavaScript.tw FB社團看到TonyQ分享影片網站利用Clickjacking偷抓你的手按讚的伎倆,想起最近固定會收到幾個影片網站的新訊息通知(在粉絲團按過讚,預設會接收通知。PS: 想訂閱本站訊息通知的朋友,知道該怎麼做了吧? :P ),莫非自己被陰了還知道? 趕緊檢查按讚記錄,果然... 過去曾大言不慚說自己資安偏執,這下丟臉丟大了~~ (掩面)
丟臉沒關係,學到教訓增廣見聞才是重點,決定花點功夫研究學習一番。
所謂的Clickjacking,意指"誘導使用者誤認滑鼠將點選某個項目,背地裡卻藉由該點擊行為觸發其他動作"的手法,某些網頁行為必須使用者親自點擊才有效,進而以使用者身份存取資料或執行操作,惡意人士可藉此建構資安陷阱。在這次案例中,影片網站用Iframe內嵌了FB按讚鈕網頁,因隸屬不同網域,瀏覽器基於安全不允許影片網站透過JavaScript操控FB網頁執行按讚動作,誘導使用者不知不覺間點擊FB按讚鈕成為唯一的突破方式。
開始研究前,先來段示範。我們先查詢FB按讚記錄--空空如也。接著到影片網站按下影片紅色播放鈕,影片播了,讚也按了。回到FB按讚記錄重新查詢,馬上可查到對該FB社群的按讚記錄。
對Clickjacking手法好奇,特地開啟瀏覽器工具偵察一番。用Firefox的Page Inspector 3D檢視,可以看到播放鈕上藏了一堆透明的FB按讚鈕,按下播放鈕的同時,無形中也按了讚。
在另一個網站也看到類似手法。
除了將按鈕藏在固定位置,還有一種更巧妙的如影隨形法。如以下動態展示,滑鼠移動的同時,<iframe>的left與top會不斷修正,目的在使iframe追著滑鼠游標跑,不管滑鼠點在網頁的任何角落,都將不偏不倚點在iframe上,"讚"吧?
初步觀察,這些行為應未構成嚴重資安危害,頂多讓人在不知情下為特定對象按讚(網站可能因此獲利)。不得不承認這些網站的確投入精力蒐羅新奇有趣養眼資訊,不然人們也不會被吸引點閱,但強迫取分的手法實在不怎麼光明正大。
如果不想"讚"被人偷走,是否有防範之道? 有骨氣一點,打死不看不就好了? XD 我想,每次開啟此類連結都用無痕模式(或私密瀏覽模式),會是個不錯的方法。
【延伸閱讀】