Application Insights 安全和欺骗

Application Insights security and spoofing

这可能是一个愚蠢的问题,但客户端应用程序洞察力是否可以免受欺骗? Microsoft 要求您向需要记录的 HTML 页面添加一些 JavaScript,其中一部分包含硬编码检测密钥(下面不是真正的密钥!):

instrumentationKey: "3D486E8C-BDEF-43AB-B27A-9D3F9D42EC14"

Url 和密钥之间似乎没有任何其他关系,也没有任何机制来防止欺骗此密钥客户端(即随机生成具有不同数字的密钥并提交页面)。

这不会造成任何损害,但对于错误监控数据的接收者来说会很烦人,这很可能是某些人想要做的"because they can"。

我是不是漏掉了一些基本的东西,为什么这是不可能的?

虽然不完全相同,但我相信答案与这个几乎相同:

How does Google Analytics prevent traffic spoofing

AI 不知道您如何或在哪里使用您的密钥,所以他们怎么知道哪些流量是合法的,哪些不是?

这是绝对正确的,任何人都可以在知道检测密钥的情况下将误导性或垃圾数据记录到任何人的 AI 帐户中。这对于大多数网络其他分析系统也是正确的:记录信息的请求是未经身份验证发送的,任何具有足够技能的人都可以模拟有效的用户数据。 AI 在页面上嵌入了检测密钥这一事实并没有使它变得更容易,因为任何使用 Fiddler 等网络流量监控工具的人仍然可以拦截和模拟请求,即使页面上没有嵌入检测密钥。 如果您怀疑恶意用户会使用您的 AI 密钥故意记录误导性数据,您应该谨慎行事并在做出业务决策之前验证数据是否有意义,例如从多少用户获得数据以及在什么时间段内获得数据,以及您的客户端页面浏览数据是否与服务器端请求数据匹配。

+1 亚历克斯的回答。仅供参考,这是 Azure Monitor 的官方回答:My Instrumentation Key is visible in my web page source

TL;DR:

  1. 是的,数据可以倾斜但不能被窃取
  2. 这是一种常见的做法
  3. 为减轻影响,您可以设置两个单独的应用洞察资源:一个用于客户端,另一个用于服务器
  4. 为了解决这个问题,您设置了一个 custom API 并将遥测数据转发给应用洞察。