javascript - 阻止 HTML 元素被修改

标签 javascript html dom

我有一个恶意广告问题。

我的网站包含一堆我们从 2-3 个广告网络填充的广告位。

最近,浏览器中的插件/扩展数量激增(用户了解如何安装它们),当页面加载时,他们会查看所有此类广告位并将自己的广告代码注入(inject)其中。

这对我的收入产生了影响,更重要的是他们注入(inject)了色情广告,这让我失去了读者。

现在我采用的一种方法是以某种方式保护广告代码,使封装它的 div 不可更改。 (这可以做到吗?) 或者关于如何阻止这种情况的任何其他方法/观点?

更新 1:正如@ShivaRaptor 所指出的,由于跨域安全限制,父 JS 无法修改 iframe 文档中的 DOM 结构。 - 这样就可以解决试图修改页面 DOM 的恶意广告者。

现在还有另一种情况 - 恶意广告者只是检测到 div 上的位置并将他们的广告粘贴到我的广告位之上。使包含的 DIV 的 z-index 最大 32 位值会阻止他们这样做吗?

最佳答案

如果此恶意软件是浏览器中的插件或扩展程序,那么您无法阻止它们修改您的页面。当用户允许将它们安装在浏览器中时,它们就为任何类型的页面修改打开了大门。

首先,我建议您真的应该收集一些关于问题实际规模的指标,以确定它是否真的是您应该花工程时间解决的问题。我毫不怀疑你有关于这件事的真实报道,但你知道这实际上影响了多少百分比的观众吗?如果它只占您的观众的一小部分,那么您最好将时间花在您的网站上以吸引更多观众,而不是试图处理这个特定的恶意软件。

我能想到您可以做的事情是:

  1. 检测您的页面是否以特定方式进行了修改,您可以撤消他们所做的操作、删除/隐藏他们注入(inject)的内容,或者只是尝试将您的页面恢复原状。
  2. 尝试检测插件是否已安装或正在修改您的页面,并警告您的浏览者他们有恶意软件正在修改网站,并提供有关如何删除恶意软件的说明。
  3. 进一步了解为什么您的观众允许安装此恶意软件,看看是否有一些教育或其他途径可以关闭,以降低恶意软件被安装的可能性。例如,如果它声称提供一些您的网站所缺乏的好处,那么您可能需要该功能。

关于javascript - 阻止 HTML 元素被修改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15962459/

相关文章:

php - 我可以使用 Jquery 在动态表中插入结束 </tr> 标签和开始 <tr> 标签吗?

javascript - Bootstrap 模式未显示

html - 如何将多个 HTML 文件合并为一个主 HTML 文件

php - 如何使用 onchange 向 javascript 提供用户在下拉列表中的选择?

javascript - 单击后如何删除 Angular 分量?

javascript - 使用 JavaScript 确定 div 内的中间 div

javascript - DOM 加载后,如何使用 JavaScript 或 JQuery 从 href 属性中删除字符?

javascript - React Native : React Navigation StackNavigator not working. 获取错误 : "undefined is not an object (evaluating ' this. props.navigation.navigate')”

javascript - ThreeJS,获取指向点击方向的向量

javascript - 从页面底部开始,向上滚动,然后粘在顶部的栏