【发布时间】:2018-08-06 00:21:06
【问题描述】:
SonarQube 在以下代码中发现了一个问题 (Cookies should be "secure"):
public static void eraseSamlCookie(final HttpServletResponse response) {
final String cookieName = Config.getParameter(Constants.SSO_COOKIE_NAME);
if (cookieName != null) {
final Cookie cookie = new Cookie(cookieName, "");
cookie.setMaxAge(0);
cookie.setPath("/");
cookie.setHttpOnly(true);
response.addCookie(cookie);
}
}
创建cookie只是为了删除客户端同名的cookie (max-age=0)。
是否有任何合理的理由将其标记为安全?规则是否应该忽略值为空且 max-age 设置为 0 的 cookie?
【问题讨论】:
-
就个人而言,我会说是的。因为我认为较旧的 IE(最多 8 个)版本会忽略此属性并且不删除 cookie(我没有检查过这个)。并且cookie名称应该是秘密的,并且它可以携带部分敏感信息。
-
你说得对,老IE不支持
max-age:mrcoles.com/blog/cookies-max-age-vs-expires
标签: java security cookies sonarqube