#2593·drogon

服务器侧会话图中来自客户端提供会话ID的潜在 HashDoS

作者: K-ANOY创建于 2026年9月14日更新于 2026年9月14日

我发现在启用会话时,Drogon 会从请求中读取 `JSESSIONID`(或配置的 Cookie 名称),并将任何非空值直接传递给 `SessionManager::getSession`。默认哈希的 `std::unordered_map` 会创建一个 `CacheMap<std::string, SessionPtr>`,其中缺失的条目将被创建。在使用确定性 `std::hash<std::string>` 的标准库中,选择相同桶的 Cookie 值可能会导致查找/插入操作向 O(n) 方向退化。

内容来源: drogonframework/drogon