azure - App Insights cookie 被 Azure 防火墙阻止

标签 azure cookies azure-application-insights web-application-firewall

我们在前端使用Application Insights,并且还使用 Azure Front Door 和 WAF(Web 应用程序防火墙)策略。

我可以在 WAF 日志中看到很多请求被某些 WAF 托管规则阻止。

当我检查 WAF 日志时,我发现请求被 Cookie ai_sessionai_user(应用洞察 Cookie)中的值阻止。

阻止请求的规则:

  • (942210) 检测链式 SQL 注入(inject)尝试 1/2 - 由于 ai_session cookie 中的 OR 值而阻止请求,如下所示: D/6NkwBRWBcMc47+EFP|1647504934370|1647505171554
  • (942450) SQL 十六进制编码已识别 - 由于 ai_user cookie 中的 Ox 值而被阻止,如下所示: mP4urlq9PZ9K0xc19D0SbK|2022-03-17T10:53:02.452Z
  • (932150) 远程命令执行:直接 Unix 命令执行 - 由于 ai_session cookie 的值被阻止:KkNDKlGfvxZWqiwU945/Cc|1647963061962|1647963061962

有没有办法强制 App Insights 生成“安全”cookie?
为什么 Azure 生成的 cookie 值会导致 Azure 防火墙阻止请求?
我知道我可以允许这些 WAF 规则,但是还有其他解决方案吗?

最佳答案

我们也开始遇到这个错误;按照您的指示禁用(或设置为允许)OWASP 规则将会起作用。

我在项目页面上打开了一份错误报告,其中更详细地概述了这一点:https://github.com/microsoft/ApplicationInsights-JS/issues/1974正如您所指出的,其要点是 WAF 规则的正则表达式过于热心。

cookie最终使用的ID是由这一段代码生成的:https://github.com/microsoft/ApplicationInsights-JS/blob/0c76d710a0cd465f0b8b5e143250898122511874/shared/AppInsightsCore/src/JavaScriptSDK/RandomHelper.ts#L125-L145

如果开发人员选择,他们有多种方法来解决问题:

  1. 根据已知正则表达式列表测试生成的 Cookie,然后在失败时重新生成。
  2. 删除一些违规组合以完全规避规则。

我们必须看看结果如何。如果您无法做到这一点,理论上您可以对项目进行分支,然后自己添加此类更改,但我不建议供应 SDK。

关于azure - App Insights cookie 被 Azure 防火墙阻止,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71589519/

相关文章:

azure-application-insights - 在门户上启用应用程序洞察扩展后,应用服务停止工作

c# - 使用 Application Insights 抑制 "The controller for path '/' was not found or does not implement IController."服务器端

azure - 从 terraform 中的字符串列表中获取子字符串

c# - CSV Helper 解析器抛出 IOException。无法从传输连接读取数据

azure - Microsoft.Web.Deployment.DeploymentManager 的类型初始值设定项引发异常

javascript - 为什么 cookie 没有内置的 JS 函数?

Ruby Mechanize 在响应中忽略 cookie

azure - 是否可以检索存储队列中的所有消息,即使是批量的?

objective-c - 如何使用 Cocoa 应用程序读取 Safari Cookie?

azure - 为什么只有很少的日志记录通过 ServerTelemetryChannel 发送到 Azure Application Insights?