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

2024-02-27

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

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

充满广告的屏幕截图http://ezimba.com/work/140308C/ezimba19743774066600.png http://ezimba.com/work/140308C/ezimba19743774066600.png

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

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

总体来说这很好,有些人已经学会了教育有类似问题的其他用户。然而,并不是每个人都会阅读其他人提出的问题(否则我们就不需要在这里“关闭为重复”,不是吗?;)) http://xkcd.com/541/

无论如何,进入正题。有没有一种可靠的方法可以通过 JavaScript 检测在我的网站上插入此类额外广告?

如果我可以自动检测到这种......“劫持”,我可以插入一个我自己的盒子来说“嘿,你有广告软件,可能应该清理它!” ...当然,一些恶意软件广告将自己伪装成“您有病毒,请单击此处修复”框,因此我必须确保它明显成为网站设计的一部分(颜色,也许将其样式设置为属于该网站某个角色的对话气泡,上面有 NPC 的名字,诸如此类的东西),但我认为这比仅仅将他们视为无法保持计算机清洁的人更有帮助。


计算标准广告分辨率的图像实际上并不太难。你只需要循环遍历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();
}

Notes:

  • 标准广告分辨率列表可以在以下位置找到:维基百科 https://en.wikipedia.org/wiki/Standard_ad_size#Standard_sizes.
  • 在 Chrome、Firefox 和 IE 中进行了测试。
  • 尚未使用动态插入的广告进行测试,但它很可能会起作用,特别是如果您添加延迟以便扩展程序可以先插入其广告。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

检测我的网站上添加恶意软件的广告 的相关文章

  • 使用 Charts.js 禁用动画

    我在使用 Charts js 关闭动画时遇到一些问题 这是我的代码 var pieData value 30 color F38630 value 50 color E0E4CC value 100 color 69D2E7 var myP
  • 粉碎一个元素,向随机方向发送碎片

    我试图 粉碎 一个元素 例如 一个图像 并将其碎片朝随机方向飞行 当碎片到达目的地时 即x距离 以像素为单位 它们变成原始图像的较小版本 jQuery UI 的explode http api jqueryui com explode ef
  • 提交表单时显示警告框

    所以我有这两页 pageOne php and pageTwo php 表格在pageOne php
  • MP4 视频无法在 Firefox 上播放

    我有一个小型家庭服务器 可以托管多个项目 其中包括一些 MP4 示例视频 我一直在使用一个简单的
  • 无法提取 Typescript 中的对象值

    我一直在尝试将 JavaScript Web 表单转换为 Typescript 但无法弄清楚如何处理以下内容 在 JavaScript 中有效 let fieldValues JSON parse cookieData let keys O
  • 上传前如何检查图片的宽度和高度

    对于图片上传 我编写了以下 html 代码
  • 元素在主体内找不到足够的空间 - JavaScript 样式

    相关信息 该页面包含两个元素 An
  • 如何使用javascript从特定标签获取HTML文档中的所有textNode?

    如何在不使用xpath或treewalker的情况下从单个数组中的一组特定标签中获取所有textNodes blockquote em h4 h6 p IE不允许您使用xpath和treewalker 请帮助我 如果脚本仅适用于 IE 那就
  • D3 时间解析返回 null

    根据此页面上的说明 https github com mbostock d3 wiki Time Formatting https github com mbostock d3 wiki Time Formatting我正在尝试解析 ISO
  • bootstrap css中垂直对齐缩略图?

    我认为这应该很简单 但我就是无法让它发挥作用 在 ASP NET MVC 中 我有一个如下所示的项目列表 div class row div class span12 ul class thumbnails foreach var film
  • javascript 中一次仅选中一个复选框

    I have 3复选框 我只想1一次选中的复选框 下面是我的 html 小提琴 JS小提琴 https jsfiddle net n03jLhqa 我想要这个工作在IE8还请建议如何做 这个怎么样 fiddle http jsfiddle
  • 用于图形操作的 Javascript 库

    有没有建议的 javascript 替代 pythonpygraph http code google com p python graph or NetworkX http networkx lanl gov 应该注意的是 可视化不是必需
  • 按钮导致页面重新加载

    我在我的页面上使用 html 和 jquery 在我的 html 中 我有一个按钮 单击该按钮将触发一个功能 当页面加载时 我调用文档准备中的主函数 这是我的代码 div div
  • Firefox 和 Chrome 为 offsetTop 提供了不同的值

    我试图相对于输入字段定位一个跨度元素 让我们称之为 工具提示跨度 为此 我将工具提示跨度和输入字段包装在另一个跨度元素中 我们称之为 包装器跨度 该元素具有position relative 然后我设置position absolute在工
  • Modernizr 未将类应用于 html 标签

    我目前正在构建一个网站 我需要使用 Modernizr 但由于某种原因 它没有将类应用到 html 标签 因为它应该 我的代码如下所示
  • Antd select 元素:如何禁用输入?

    我正在尝试使用模式 multiple 的选择元素 我希望禁用输入 这意味着用户只能在现有选项之间进行选择 而不能输入文本 我该怎么做呢 我的元素 import Select from antd import antd dist antd c
  • 自动更改 Twitter Bootstrap 选项卡

    我希望 Twitter Bootstrap 选项卡按时间顺序更改 我使用它们有点像旋转木马 我希望选项卡每 10 秒切换到下一个选项卡 这是一个例子 http library buffalo edu http library buffalo
  • 检测图像是否损坏或损坏

    我需要以编程方式检查用户在我的应用程序上选择作为壁纸的图像是否已损坏或损坏 基本上我为用户提供了选择自己的图像作为壁纸的选项 现在 当图像加载时 我只想检查它是否已损坏 如果您正在寻找 PHP 解决方案而不是 javascript 解决方案
  • Chrome 中的 addEventListener

    我正在关注 Lynda com 上有关新 DOM 事件模型的教程 这是我正在使用的代码 function addEventHandler oNode sEvt fFunc bCapture if typeof window event un
  • 调试客户端时使用 Chrome/Firefox

    我正在使用带有 getUserMedia 的相机 但出现了一些需要修复的错误 问题是 Visual Studio 只允许我使用 IE 调试 JavaScript 我的意思是命中断点 而 IE 不支持 getUserMedia 如果您想在 I

随机推荐

  • FileBeat 收获问题

    我们使用 ELK 来控制我们的程序日志 在我们的 FileBeat 配置中 我们从中获取30种不同包含每秒更新的文件的路径 它仅在产品机器中每秒更新 在其他开发机器中 我们的日志要少得多 我们的日志文件不会被删除 直到它们变旧并且我们停止使
  • Indy 和 smtps:无法连接

    我正在尝试使用 Indy 和说明的技术从 smtps 安全 smtp 发送电子邮件在 Marco Cant 的这篇文章中 http www marcocantu com tips oct06 gmail html 这就是我正在使用的 obj
  • 在 SciKit 线性回归上出现“ValueError:形状未对齐”

    一般来说 SciKit 和 Python 的线性代数 机器学习相当新 所以我似乎无法解决以下问题 我有一个训练集和一个测试数据集 其中包含连续值和离散 分类值 CSV 文件被加载到 Pandas DataFrame 中并匹配形状 分别为 1
  • 初始化列表与向量

    在 C 11 中 可以使用初始化列表来初始化函数中的参数 其目的是什么 不能用 const 向量做同样的事情吗 下面两个程序有什么区别 使用初始化列表 include
  • Apache Beam 计数器/指标在 Flink WebUI 中不可用

    我正在使用 Flink 1 4 1 和 Beam 2 3 0 并且想知道是否可以在 Flink WebUI 或任何地方 中提供可用的指标 如 Dataflow WebUI 中那样 我用过类似的计数器 import org apache be
  • 数据库操作的任务与服务

    JavaFX 8 任务和服务之间有什么区别 在哪种情况下使用其中一个更好 数据库操作用什么比较好 任务和服务之间的主要区别 一次性执行与重复执行 A Task http docs oracle com javafx 2 api javafx
  • C 中的布谷鸟哈希

    有没有人有实施布谷鸟哈希 http en wikipedia org wiki Cuckoo hashing在C语言中 如果有一个开源的非 GPL 版本那就完美了 既然 Adam 在评论中提到了它 有人知道为什么它没有被太多使用吗 这只是一
  • Python 3.10 匹配/大小写与常量[重复]

    这个问题在这里已经有答案了 我尝试用更短的代码块替换 if elif elif else 代码块match case从 Python 3 10 开始 我定义了三个常量 并希望对每个常量执行不同的操作 因此我的代码大致如下所示 gt gt g
  • BadTokenException:无法添加窗口——令牌 null 无效;您的活动正在运行吗?在activity.isFinishing语句中

    如果用户仍在当前活动中 我有一个需要在几秒钟后显示的弹出窗口 我实现了一个语句 检查活动是否未完成 销毁 然后显示弹出窗口 对于周末用户来说 它工作得很好 从一个活动缓慢单击到另一个活动 但在高压测试中 活动正在重新创建 完成 快速移动形式
  • Android studio 导航抽屉在设计视图上显示黑屏

    我安装了 Android studio 3 1 3 但它只显示黑屏 构建 gradle apply plugin com android application android compileSdkVersion 28 defaultCon
  • 使用 Google App Script 从 google 驱动器中进行 OCR 图像

    我已经实现了以下脚本 使用图像 URL 对单个和多个图像进行 OCR function doOCRALL var selected SpreadsheetApp getActiveSheet getActiveRange getValues
  • iOS 7 后退按钮符号?

    我真的很喜欢 iOS 7 中后退按钮箭头的形状 并且想在我的一个 UIButton 上使用它 但像 gt 而不是 You have to use an image These assets are in the original size
  • Ada-Delta 方法在具有 MSE 损失和 ReLU 激活的去噪自动编码器中使用时不会收敛?

    我刚刚实施了 AdaDelta http arxiv org abs 1212 5701 http arxiv org abs 1212 5701 用于我自己的深度神经网络库 这篇论文说的是 AdaDelta 的 SGD 对超参数不敏感 并
  • Spring 的 GA、RC 和 M2 版本有什么区别?

    Spring的3 0版本现已发布GA发布 在此之前他们已经推出了3 0RC1 RC2版本 另外 还有 Spring 3 0M2版本 GA RC M 版本有什么区别 GA 一般可用性 发布 应该非常稳定并且功能齐全 RC 候选版本 可能功能完
  • 多租户 Saas 资源

    你好 我们正在开发一个项目 并决定采用多租户 Saas 架构 级别 4 和共享数据库共享模式方法 如本页所示http msdn microsoft com en us library aa479086 aspx http msdn micr
  • Python For 循环中的最后一次迭代[重复]

    这个问题在这里已经有答案了 有没有简单的方法可以找到Python中for循环的最后一次迭代 我只想将列表转换为 CSV 要将列表转换为 CSV 请使用join http docs python org library stdtypes ht
  • 确定 WPF 窗口中谁拥有焦点

    我们正在使用 WPF 并有一个从 DockingLibrary 派生的窗口 该窗口有一个网格 其中包含多个项目 其中一个是 WPF 数据网格 我们使用 M V VM 模式 创建并显示此窗口时 不会选择此数据网格中的任何行 我们可以通过执行以
  • 视图在 RotationY 动画接近结束时消失

    我正在尝试制作一个流畅的动画 其中占据大部分屏幕空间的视图旋转以显示背面的另一个视图 rotatingView animate rotationY 90 setDuration 250 setInterpolator new Acceler
  • Facebook 对话框失败并出现错误:操作无法完成。 (NSURLErrorDomain错误-999。)

    我正在使用适用于 ios 的 facebook api 并且我正在使用 facebook 对话框来发帖 基本思想是 我有一个发布按钮 它调用一个方法并询问您是否已登录以立即发布或执行登录然后发布 当第二种情况发生时 我无法在登录 Faceb
  • 检测我的网站上添加恶意软件的广告

    我最近在我的网站上做了一种 公共服务公告 告诉人们网站上只有一个广告 并且它被整齐地放置在网站的设计中 我这样做是因为有人报告该网站 无法正常工作 当被要求提供问题的屏幕截图时 我向我提供了以下信息 充满广告的屏幕截图http ezimba