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 上设置安全标志。