Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/398.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 检测在我的网站上添加的恶意软件广告_Javascript_Html_Malware Detection - Fatal编程技术网

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

Javascript 检测在我的网站上添加的恶意软件广告,javascript,html,malware-detection,Javascript,Html,Malware Detection,我最近在我的网站上发布了一种“公共服务公告”,告诉人们网站上只有一个广告,而且广告被整齐地放在了网站的设计中 我这样做是因为有人报告该网站“不工作”,当被要求提供问题的屏幕截图时,我提供了以下信息: 进一步调查发现问题是一个名为“HD拖缆”的恶意扩展 一般来说,一旦问题被确定为广告软件,我会将他们指向恶意软件,并说“这是你的问题,不是我的问题,我现在需要回去工作” 总的来说,这很好,一些人已经学会教育有类似问题的其他用户。然而,并不是每个人都会阅读其他人提出的问题(或者我们不需要在这里“像复制

我最近在我的网站上发布了一种“公共服务公告”,告诉人们网站上只有一个广告,而且广告被整齐地放在了网站的设计中

我这样做是因为有人报告该网站“不工作”,当被要求提供问题的屏幕截图时,我提供了以下信息:

进一步调查发现问题是一个名为“HD拖缆”的恶意扩展

一般来说,一旦问题被确定为广告软件,我会将他们指向恶意软件,并说“这是你的问题,不是我的问题,我现在需要回去工作”

总的来说,这很好,一些人已经学会教育有类似问题的其他用户。然而,并不是每个人都会阅读其他人提出的问题(或者我们不需要在这里“像复制一样接近”,是吗

总之,说到点子上。有什么可靠的方法可以通过JavaScript检测到在我的网站上插入这样的额外广告吗?


如果我能自动检测到这样的“劫持”,我可以插入我自己的一个框,说“嘿,你有广告软件,也许应该清理一下!”……当然,一些恶意软件广告伪装成“你有病毒,点击这里修复”框,所以我必须确保它显然是网站设计的一部分(颜色,可能将其设计成一个对话泡泡,属于该网站的一个角色,上面有NPC的名字,诸如此类的东西)但我认为这比仅仅将他们视为无法保持电脑清洁的人更有用。

计算标准广告分辨率的图像实际上并不太难。你只需循环查看
文档。图像
即可检查分辨率。你可以通过检查其唯一ID跳过你自己的广告(当然,如果没有ID,您可以跳过特定分辨率的图像)

var adID=“myAdId”;
//不完整的广告解决方案列表
风险值宽度=[120160];
风险值高度=[600600];
var-adCount=0;
对于(i=0;i0){
notifyUser();
}
注:

  • 可在上找到标准广告分辨率列表
  • 在Chrome、Firefox和IE中测试
  • 未使用动态插入的广告进行测试,但它很可能会工作,特别是如果您添加延迟以便扩展可以首先插入其广告

比如计算页面上的图像和/或Flash元素并将其与已知值进行比较?听起来很乏味。你可以研究一下,我不确定这是否是一个标准,但它是在Google Chrome 18+和Firefox中实现的。我也不确定Google Chrome是否隔离了扩展插入。请检查此链接。这可能会有所帮助
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();
}