检测我网站上添加恶意软件的广告

时间:2014-05-19 14:01:44

标签: javascript html malware-detection

我最近做了一个"公共服务公告"在我的网站上告诉人们网站上只有一个广告,它整齐地放在网站的设计中。

我之所以这样做,是因为有人将该网站报告为"没有工作",当被要求提供问题的屏幕截图时,我提供了这个:

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

进一步的调查显示该问题属于恶意扩展名为" HD Streamer"。

一般情况下,一旦确定某个问题是广告软件,我就会将它们指向MalwareBytes并说“#34;它是您的问题,而不是我的问题,我现在需要重新开始工作"。

这总体上很好,有些人已经学会教育有类似问题的同事。但是,不是每个人都会阅读其他人提出的问题(否则我们就不需要"关闭重复"在这里,现在我们会这样做吗?;))

无论如何,至关重要。 是否有任何可靠的方法通过JavaScript检测此类额外广告在我的网站上的插入?

如果我能自动检测出这样的......劫持",我可以插入一个我自己的盒子来说"嘿,你有广告软件,可能应该清理它!&#34 ; ...'当然,一些恶意软件广告将自己伪装成“#34;你有病毒,点击此处修复"盒子,所以我必须确保它显然是网站设计的一部分(颜色,也许它作为一个对话泡泡属于该网站的一个角色与所述NPC&s; s名字,这样的东西)但我认为这比仅仅将他们视为无法保持计算机清洁的人更有帮助。

1 个答案:

答案 0 :(得分: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中测试过。
  • 未使用动态插入广告进行测试,但它最有可能奏效,特别是如果您添加延迟,以便扩展程序可以先插入广告。