Fortify Audit Workbench Cookie Security: Cookie not Sent Over SSL

Abstract

所创建的 cookie 的 secure 标记没有设置为 true。

Explanation

现今的 Web 浏览器支持每个 cookie 的 secure 标记。 如果设置了该标记,那么浏览器只会通过 HTTPS 发送 cookie。 通过未加密的通道发送 cookie 将使其受到网络截取攻击,因此安全标记有助于保护 cookie 值的保密性。 如果 cookie 包含私人数据或带有会话标识符,那么该标记尤其重要。
例 1: 在下面的示例中,在未设置 secure 标记的情况下将 cookie 添加到响应中。

Cookie cookie = new Cookie("emailCookie", email);
response.addCookie(cookie);

如果您的应用程序同时使用 HTTPS 和 HTTP,但没有设置 secure 标记,那么在 HTTPS 请求过程中设置的cookie 也会在随后的 HTTP 请求过程中被发送。 通过未加密的无线连接截取网络信息流对攻击者而言十分简单, 因此通过 HTTP 发送 cookie(特别是具有会话 ID 的 cookie)可能会危及应用程序安全。

Recommendation

对所有新 cookie 设置 Secure 标记,指示浏览器不要以明文形式发送这些 cookie。 可通过调用setSecure(true) 完成此配置。
例 2:

Cookie cookie = new Cookie("emailCookie", email);
cookie.setSecure(true);
response.addCookie(cookie)
posted @ 2020-03-14 18:05  马洪彪  阅读(920)  评论(0编辑  收藏  举报