我编写了一个多进程实时 WebSocket 服务器,它使用会话 ID 根据它正在侦听的端口号来平衡到相关工作人员的流量。会话 ID 包含主机名、源端口号、工作端口号和工作人员用来唯一标识客户端的实际哈希 ID。典型的会话 ID 如下所示:
localhost_9100_8000_0_AoT_eIwV0w4HQz_nAAAV
我想知道将工作端口号(在本例中为 9100)作为会话 id 的一部分的安全隐患。
我有点担心拒绝服务 (DoS) 威胁 - 从理论上讲,这可能允许恶意用户生成大量针对特定端口号的 HTTP 请求(例如,通过使用包含该端口号的虚假 sessionID ) - 但这是一个严重的威胁吗?(假设你有不错的防火墙)?从安全角度来看,像 Google 这样的大公司如何处理粘性会话?
我还应该考虑其他威胁吗?
我这样设计服务器的原因是考虑到初始 HTTP 握手以及客户端不支持 WebSocket 时(在这种情况下使用 HTTP 长轮询 - 因此来自客户端的后续 HTTP 请求需要转到后端的同一个工人)。