检测用户篡改DOM

时间:2011-06-15 02:52:43

标签: javascript html css dom

我写了一个网络应用程序,侧面使用广告横幅来支持免费帐户。问题是,由于广告是在自己的< div>中加载的,因此在任何现代浏览器中进入开发人员/调试控制台相对容易,并且使用CSS覆盖删除div或将广告调整为0px(用户可能会这样做在应用工作区获得更多的房地产)。为了防止这种情况,我正在考虑定期检查广告中div的属性是否发生了变化(包括CSS样式),如果是,则重新加载页面。由于我依赖画布元素进行绘制,因此重新加载对用户来说会相对烦人,因为它会清除画布,所以除非广告被篡改,否则我不想这样做。

我已经看到一些关于跟踪DOM变化的类似问题,其中人们建议使用变异事件。然而,基于答案,似乎并不是所有浏览器都支持(然后,我见过的线程来自2008年和2009年,所以事情可能会从那时起发生变化)。

我正在考虑的另一个选择是在页面完成加载后用广告读取div的offsetWidth,offsetHeight,offsetTop,offsetLeft,并定期将它们与当前值进行比较(你可以做的很多事情都没有如果你不能移动它,让div消失。)

你们有什么建议?

2 个答案:

答案 0 :(得分:6)

你永远不会阻止那些对DOM检查员足够舒服的人做这件事。它甚至不值得猫捉老鼠游戏。 99.999%的用户如果不小心访问了DOM检查员,可能会致电技术支持。

答案 1 :(得分:6)

如果访问者使用带有Adblock的Firefox,则您的横幅永远不会出现在页面中,因此不会发送突变事件。您可以查看样式属性并重新加载页面,但不会显示广告。不断重新加载的页面会让用户烦恼,所以他们会离开。

如果你对此感到满意,那就去吧。否则,要意识到任何禁用广告的人都不会对它做出任何回应,那么重点是什么呢?

相关问题