我们在前端使用Application Insights,我们还使用带有WAF(Web应用程序防火墙(策略的Azure Front Door。
我可以在WAF日志中看到,许多请求被一些WAF托管规则阻止。
当我检查WAF日志时,我发现请求被cookieai_session和ai_user(应用程序洞察cookie(中的值阻止。
阻止请求的规则:
- (942210(检测连锁SQL注入尝试1/2-由于ai_session cookie中的OR值而阻止请求,如下所示:D/6NkwBRWBcMc4或7+EFP|1647504934370|1647505171554
- (942450(SQL十六进制编码已识别-由于ai_user cookie中的Ox值而被阻止,如下所示:mP4urlq9PZ9K0xc19D0SbK|2022-03-17T10:53:02.452Z
- (932150(远程命令执行:直接Unix命令执行-阻止,因为ai_session cookie的值为:KkNDKlGfvxZWqiwU945/Cc|1647963061962|16479630 61962
有没有一种方法可以强制App Insights生成";"安全";饼干
为什么Azure生成cookie值,而另一方面会导致Azure防火墙阻止请求
我知道我可以允许这些WAF规则,但还有其他解决方案吗?
我们也开始遇到这个错误;按照您的指示禁用(或设置为允许(OWASP规则将起作用。
我在项目页面上打开了一份错误报告,在这里更详细地概述了这一点:https://github.com/microsoft/ApplicationInsights-JS/issues/1974正如你所指出的,最可笑的是WAF规则的Regex过于热心。
Cookie最终使用的ID由以下代码部分生成:https://github.com/microsoft/ApplicationInsights-JS/blob/0c76d710a0cd465f0b8b5e143250898122511874/shared/AppInsightsCore/src/JavaScriptSDK/RandomHelper.ts#L125-L145
如果开发人员选择,他们有各种方法来解决问题:
- 根据已知正则表达式列表测试生成的cookie,然后在失败时重新生成
- 删除一些有问题的组合以完全避开规则
我们得看看结果如何。如果你不能做到这一点,理论上你可以分支项目,然后自己添加这样的更改,但我不建议出售SDK。