CXX.SV.INSECURE_COOKIE

不安全的 Cookie

当应用程序通过可能存在风险的网络通信使用 Cookie 时,Klocwork 会报告 CXX.SV.INSECURE_COOKIE 缺陷。

漏洞与风险

使用不安全的网络通信发送的 Cookie 可能会泄露会话 ID 等重要信息。这些不安全的通信容易成为各种网络攻击的对象,包括中间人攻击、会话劫持以及在会话中插入虚假信息。

缓解与预防

常见的缓解策略是确保使用传输加密协议(如 SSL 或 TLS)来保护会话。这些协议可确保在协议级别对实体进行身份验证,并且对经过身份验证的实体进行通信加密。

应始终在创建 Cookie 时设置安全标志。查看用于生成 Cookie 的框架,了解如何实现此功能。

漏洞代码示例

复制
void create_cookie(QNetworkCookieJar &cookieJar)
{
    QNetworkCookie cookie;
    cookieJar.insertCookie(cookie);   //CXX.SV.INSECURE_COOKIE
}

Klocwork 在第 4 行报告了 CXX.SV.INSECURE_COOKIE 缺陷,指出可能通过存在潜在风险的网络通信使用 Cookie。

修正代码示例

复制
void create_cookie(QNetworkCookieJar &cookieJar)
{
    QNetworkCookie cookie;
    cookie.setSecure(true);
    cookieJar.insertCookie(cookie);
}

Klocwork 不再报告 CXX.SV.INSECURE_COOKIE 缺陷,因为已通过调用 setSecure(true) 在 Cookie 上设置安全标志。

安全培训

应用程序安全培训材料由 Secure Code Warrior 提供。