2014-05-19 89 views
3

我最近在我的網站上發佈了一種「公共服務公告」,告訴人們網站上只有一個廣告,它整齊地放置在網站的設計中。在我的網站上檢測添加惡意軟件的廣告

我這樣做是因爲有人舉報該網站爲「不工作」,當問及該問題的屏幕截圖,此爲我提供了:

ad-riddled screenshot http://ezimba.com/work/140308C/ezimba19743774066600.png

進一步調查發現是一個問題稱爲「HD Streamer」的惡意擴展。

一般來說,一旦問題確定爲廣告軟件,我將它們指向MalwareBytes並說「這是你的問題,不是我的,我需要現在回去工作」。

總體來說這還不錯,有些人已經學會了教育有類似問題的其他用戶。然而,並不是每個人都讀別人問(否則我們就不需要「接近重複」這裏的問題,現在我們能嗎?;))

反正到這一點。是否有任何一種可靠的方法通過JavaScript檢測到我的網站上插入這樣的額外廣告?

如果我能自動檢測到這樣的...「劫持」,我可以插入一個我自己的盒子說:「嘿,你有廣告軟件,可能應該清理它!「......」當然,有些惡意軟件廣告僞裝成「你有病毒,點擊這裏修復」框,所以我必須確保明顯成爲網站設計的一部分(顏色,也許可以將它視爲一個屬於si的角色的對話泡泡te與所述NPC的名字,類似的東西),但我認爲這比僅僅將他們視爲無法保持電腦清潔的人更有幫助。

+0

如計數頁面上的圖像和/或Flash元素並將其與已知值進行比較?聽起來很乏味。 – j08691

+0

你可以看看[DOM MutationObserver](http://hacks.mozilla.org/2012/05/dom-mutationobserver-reacting-to-dom-changes-without-killing-browser-performance/),我不是確定它是否是一個標準,但它是在Google Chrome 18+和Firefox中實現的。我也不確定Google Chrome是否會分離插件。 – Olumide

+0

請檢查此鏈接http://security.stackexchange.com/questions/56609/js-malware-detection ..它可能有幫助 – coder

回答

0

計算標準廣告決議的圖像實際上並不太難。你只需循環通過document.images檢查分辨率,你去。您可以通過檢查自己的唯一ID跳過自己的廣告(當然,如果它沒有ID,您可以跳過特定分辨率的圖像)。

var adID = "myAdId"; 
//incomplete ad resolution list 
var widths = [120, 160]; 
var heights = [600, 600]; 
var adCount = 0; 
for(i = 0; i < document.images.length; i++){ 
    for(j = 0; j < widths.length; j++){ 
     if(document.images[i].width == widths[j] 
      && document.images[i].height == heights[j] 
      && document.images[i].id != adID){ 
      adCount++; 
      break; 
     } 
    } 
} 
if(adCount > 0){ 
    notifyUser(); 
} 

注:

  • 的標準廣告分辨率名單可在Wikipedia找到。
  • 在Chrome,Firefox和IE中進行測試。
  • 未使用動態插入的廣告進行測試,但應該很有效,特別是如果您添加延遲,以便擴展程序可以先插入其廣告。
相關問題