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)