有没有办法检测 HTML DOM 是否被最终用户系统上的恶意软件修改?我有一个受 HTTPS 保护的网站,最近遇到了一个支持电话,用户在我的网站上看到广告。我的网站上没有广告,我们最终在最终用户的系统上运行了反病毒扫描,发现并清除了许多感染,之后广告就消失了。不幸的是,我无法提供任何代码示例,因为我什至不知道从哪里开始。
user1625066
问问题
743 次
2 回答
2
可以使用MutationObserver
s 检测 DOM 修改(所有主要供应商都支持)。
但是,可能很难检测到哪些修改是恶意的,哪些不是。
也许需要研究一下:根据恶意软件的工作方式,您可能能够阻止script
标签的插入(或至少执行)。这可能会阻止幼稚的恶意软件,但这是一场猫捉老鼠的游戏。
于 2014-11-10T17:32:12.410 回答
0
归根结底,您无法控制在您无法控制的计算机上发生的事情。足够先进的恶意软件会检测到您检测它的尝试,并会就结果对您撒谎。
也就是说,您可以应用一些技术来尝试使攻击者更难。
编写您自己的代码,该代码知道您的 dom 应该是什么样子。攻击者将阻止您的代码运行。
更新代码,以便每隔几秒钟与您的应用程序服务器进行交互。攻击者将复制这段代码并停止运行原始检查。
更新您的代码以执行需要最少已知时间的复杂操作。攻击者的反应与上述相同
将您的检查代码与您的业务逻辑混合在一起并混淆所有内容。攻击者可以创建自己的 UI 与您的服务器交互并显示它而不是您的 ui
现在,仅仅因为你处于战斗的失败一方,这并不意味着它没有用。这实际上取决于谁可能会攻击您的服务器,以及他们想在与您的军备竞赛上花费多少资源与您想花费多少资源对抗他们
于 2014-11-10T17:39:49.853 回答