SignalR 的 messageId 值

The SignalR's messageId value

我将 SignalR 用于我的 ASP.Net 具有 longPolling 协议的应用程序。我看到客户端使用 messageId 表单数据向服务器发送 \signalr\pool 请求:d-B1017AFE-SC,B8|bW,0|bs,1|bx,2.

我正在寻找描述 d-B1017AFE-SC,B8|bW,0|bs,1|bx,2 格式但尚未找到的文档。请帮助我理解它。下图是从 Chrome Dev Toll 截取的,它解释了我所说的话。

我的客户使用 Azure WAF 来保护网站。 Azure WAF 报告显示上述请求属于 Command Injection 风险,因为 messageId 包含匹配 |ps|bw|bs|bx Azure WAF 中的规则。所以我需要了解 messageId 内容来为我的客户解释并要求他们自定义规则以忽略该请求。

报告中的 WAF 描述如下:

[{'riskGroup':'','match':'Vector Score: 5, Group Threshold: 4, Triggered Rules: 950006, Mitigated Rules: , Last Matched Message: System Command Injection','threshold':'4','type':'riskscore','version':'1','score':0,'atomics':[{'score':5,'riskGroup':'CMD-INJECTION-ANOMALY','match':'|ps','ruleName':'System Command Injection','selector':'ARGS:messageId','ruleId':'950006','version':'7'}],'actionId':'alert','ruleName':'CMD-INJECTION-ANOMALY','action':'Alert','selector':'','ruleId':'CMD-INJECTION-ANOMALY','category':'Command Injection'}]

这看起来不错。 messageId 告诉服务器客户端收到的最后一条消息是什么。它看起来像这样 d-3104A0A8-H,0%7CL,0%7CM,2%7CK,0 并且 Chrome 正在将 %7C 翻译成 |

This 文档很好地解释了 SignalR 协议。

在内部,它看起来是基于反序列化的响应。