【悟空雲課堂】第二十七期:HTTPS會話裡的敏感Cookie沒有設定‘Secure‘屬性(CWE-614)
技術標籤:悟空雲課堂程式碼規範安全安全漏洞資訊保安https
關注公眾號“中科天齊軟體安全中心”(id:woocoom),一起漲知識!
該欄目為中科天齊全新規劃的悟空雲課堂,每週五下午18:00準時上線,旨在科普軟體安全相關知識,助力企業有效防範軟體安全漏洞,提升網路安全防護能力。
【悟空雲課堂】第二十七期:HTTPS會話裡的敏感Cookie沒有設定’Secure’屬性(CWE-614:Generation of Error Message Containing Sensitive Information)
什麼是HTTPS會話裡的敏感Cookie沒有設定’Secure’屬性缺陷?
HTTPS會話裡的敏感Cookie沒有設定’Secure’屬性,這可能導致使用者代理通過HTTP會話以純文字格式傳送這些cookie。
HTTPS會話裡的敏感Cookie沒有設定’Secure’屬性缺陷構成條件有哪些?
產品沒有在HTTPS會話中為Cookie設定’Secure’屬性。
HTTPS會話裡的敏感Cookie沒有設定’Secure’屬性缺陷會造成哪些後果?
這可能導致cookie在http請求中傳送,並使遠端攻擊者更容易捕獲此cookie。
HTTPS會話裡的敏感Cookie沒有設定’Secure’屬性缺陷的防範和修補方法有哪些?
新增Secure標誌。Secure屬性是防止資訊在傳遞的過程中被監聽捕獲造成資訊洩漏。當Secure標誌的值被設定為true時,表示建立的 Cookie 會被以安全的形式向伺服器傳輸,即只能在 HTTPS 連線中被瀏覽器傳遞到伺服器端進行會話驗證,如果是 HTTP 連線則不會傳遞該資訊,所以Cookie 的具體內容不會被盜取。
HTTPS會話裡的敏感Cookie沒有設定’Secure’屬性缺陷樣例:
…
public static Cookie addCookie(HttpServletRequest request, HttpServletResponse response, String name, String value,Integer expiry, String domain) {
Cookie cookie = new Cookie(name, value);
if (null != expiry) {
cookie.setMaxAge( expiry);
}
if (isNotBlank(domain)) {
cookie.setDomain(domain);
}
String ctx = request.getContextPath();
cookie.setPath(isBlank(ctx) ? "/" : ctx);
response.addCookie(cookie);
return cookie;
}
…
用Wukong(悟空)軟體程式碼安全檢測修復系統檢測上述程式程式碼,則可以發現程式碼中存在著“HTTPS會話裡的敏感Cookie沒有設定”Secure屬性” 導致的程式碼缺陷,如下圖:
HTTPS會話裡的敏感Cookie沒有設定’Secure’屬性缺陷在CWE中被編號為CWE-614:Generation of Error Message Containing Sensitive Information
更多的資訊請參考CWE官網:http://cwe.mitre.org/data/definitions/614.html
瞭解更多安全資訊 請關注公眾號 中科天齊軟體安全中心