Javascript 检测恶意软件是否正在篡改网站

Javascript 检测恶意软件是否正在篡改网站,javascript,html,malware-detection,Javascript,Html,Malware Detection,有没有办法检测最终用户系统上的恶意软件是否正在修改HTML DOM?我有一个受HTTPS保护的网站,最近遇到一个支持电话,用户在我的网站上看到广告。我的网站上没有广告,我们在最终用户的系统上进行了反病毒扫描,发现并清除了许多感染,之后广告就消失了。不幸的是,我无法提供任何代码示例,因为我甚至不知道从哪里开始 可以使用(所有主要供应商都支持)检测DOM修改 但是,可能很难检测出哪些修改是恶意的,哪些不是恶意的 也许需要研究一下:根据恶意软件的工作方式,您可能能够阻止插入(或至少执行)script标

有没有办法检测最终用户系统上的恶意软件是否正在修改HTML DOM?我有一个受HTTPS保护的网站,最近遇到一个支持电话,用户在我的网站上看到广告。我的网站上没有广告,我们在最终用户的系统上进行了反病毒扫描,发现并清除了许多感染,之后广告就消失了。不幸的是,我无法提供任何代码示例,因为我甚至不知道从哪里开始

可以使用(所有主要供应商都支持)检测DOM修改

但是,可能很难检测出哪些修改是恶意的,哪些不是恶意的


也许需要研究一下:根据恶意软件的工作方式,您可能能够阻止插入(或至少执行)
script
标记。这可能会阻止天真的恶意软件,但这是一个猫捉老鼠的游戏。

归根结底,你无法控制你无法控制的计算机上发生的事情。足够先进的恶意软件会检测到您试图检测它的行为,并会就结果对您撒谎

也就是说,您可以应用一些技术来尝试让攻击者更难对付

  • 编写自己的代码,了解dom应该是什么样子。攻击者将阻止您的代码运行

  • 更新代码,以便每隔这么多秒与应用程序服务器交互。攻击者将复制这段代码并停止原始检查的运行

  • 更新代码以执行需要最少已知时间的复杂操作。攻击者将做出与上述相同的响应

  • 将您的检查代码与您的业务逻辑混合在一起,使一切变得混乱。攻击者可以创建自己的UI与服务器交互,并显示该UI而不是您的UI


  • 现在,仅仅因为你在战斗中处于失败的一方,这并不意味着它是无用的。这实际上取决于谁可能会攻击你的服务器,以及他们想在与你的军备竞赛上花费多少资源,而你想花费多少资源来对付他们

    不,没有办法做到这一点。你可以尝试,但你会失败。这也不是你的问题。@PeeHaa-这也是我的假设。然而,我看到一些文章谈到使用javascript进行更改检测,所以我想我应该向stack overflow社区咨询一下。是的,您可以观察DOM中的更改。这不会告诉你任何关于恶意软件、用户操作、浏览器插件/任何想法的信息。不允许用户在未编码的情况下将HTML或JavaScript输入到网站上的任何类型的输入字段中。用户可能也不知道他们有意安装了什么。以Skype为例,;如果您安装了插件,它将突出显示电话号码等,并为您提供选项。虽然这不一定是您所指的内容,但用户可能不知道或不理解插件的性质以及它们对DOM的影响。我认为如果检测到任何更改,我将在登录页面上使用observer并禁用表单。登录页面很简单,我可以雇用变异观察员。10分钟内接受吗?我没有更好的答案,但10分钟有点仓促…@dandavis-提供的答案给了我一个很好的起点,然后根据需要调整脚本。我的登录页面实际上是两个字段,带有几行javascript,用于非常基本的验证。我应该能够很容易地检测到这个页面上的DOM更改。