检测用户篡改DOM

Ale*_*kov 2 html javascript css dom

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

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

我正在考虑的另一个选择是在页面完成加载后读取div的offsetWidth,offsetHeight,offsetTop,offsetLeft,并定期将它们与当前值进行比较(你可以做很多事情来制作div如果你不能移动就离开).

你们有什么建议?

Jos*_*osh 6

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

  • +1如果您可以通过这种方式篡改DOM,您还可以操纵试图检测操作的Javascript. (4认同)

Rob*_*obG 6

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

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