未能使用安全 cookie¶
ID: java/insecure-cookie
Kind: problem
Security severity: 5.0
Severity: error
Precision: high
Tags:
- security
- external/cwe/cwe-614
Query suites:
- java-code-scanning.qls
- java-security-extended.qls
- java-security-and-quality.qls
未能对 cookie 设置“secure”标志会导致以明文形式发送该 cookie。这使得攻击者更容易拦截该 cookie。
建议¶
始终使用 setSecure
在将 cookie 添加到 HttpServletResponse
之前对 cookie 设置“secure”标志。
示例¶
此示例展示了将 cookie 添加到 HttpServletResponse
的两种方法。第一种方法省略了“secure”标志的设置;第二种方法包括标志的设置。
public static void test(HttpServletRequest request, HttpServletResponse response) {
{
Cookie cookie = new Cookie("secret", "fakesecret");
// BAD: 'secure' flag not set
response.addCookie(cookie);
}
{
Cookie cookie = new Cookie("secret", "fakesecret");
// GOOD: set 'secure' flag
cookie.setSecure(true);
response.addCookie(cookie);
}
}
参考¶
SEI CERT Java 编码标准:SER03-J. 不要序列化未加密的敏感数据。
Java Platform, Enterprise Edition (Java EE) 7,API 规范:Cookie 类。
常见弱点枚举:CWE-614。