2010-10-25 112 views
14

HTTPS連接中的Cookie是否安全?HTTPS連接中的Cookie是否安全?

+0

不,不會自動。使用https://github.com/delight-im/PHP-Cookie或類似的本地函數,使用'$ cookie-> setSecureOnly(true);'它將*安全地防止在不安全的HTTP上劫持* $ cookie-> setHttpOnly(true);'它將*安全地防止通過頁面中的XSS漏洞劫持*等等。因此,爲了判斷cookie是否「安全」,您需要首先定義威脅模型。通過簡單的HTTP或XSS進行Cookie竊取是您通常應該關心的事情。 – caw 2016-07-13 00:22:07

回答

17

它傳輸到服務器和從服務器加密,因此它與TLS一樣安全。

您還可以通過在「Set-cookie」響應標頭中添加「HttpOnly」標誌,將cookie標記爲僅用於客戶端 - >服務器通信,並阻止來自客戶端Javascript的訪問。

編輯 —和@Bruno建議,您也可以使用「安全」標誌(在相同的標題)告訴該cookie只能在HTTPS請求被髮送回服務器的瀏覽器。作爲@ D.W。在一個較新的評論中指出,這可能相當重要,因爲你幾乎肯定不希望你的重要安全cookie可能在不安全的交互中傳輸(比如,在從網站的非安全公共部分登錄之前)。如果全部是與特定cookie域的交互都是HTTPS,那麼這可能不是必需的,但它是如此簡單的事情,沒有理由不這樣做。

編輯 —更新,時間長了以後:使用secure標誌:)

+3

這也值得使用安全cookie標誌。 – Bruno 2010-10-25 14:54:00

+0

@Bruno哦,當然是的 - 我會擴大答案 – Pointy 2010-10-25 14:55:47

+2

這個答案是錯誤的。如果設置了安全標誌,cookie只與「TLS一樣安全」。否則,中間人或潛在被動竊聽者可以瞭解cookie值(因爲如果未設置安全標誌,它將在未加密的會話中發送)。 – 2011-09-18 03:35:55

6

在連接中,是的。但它仍然保存在未加密的客戶機上。

6

Cookies是HTTP頭內發送。因此,它們與HTTPS連接一樣安全,HTTPS連接依賴於許多SSL/TLS參數,如密碼強度或公鑰​​長度。

請注意,除非您爲您的Cookie設置了Secure標誌,否則Cookie可以通過不安全的HTTP連接進行傳輸。中間人攻擊使用這種不安全的Cookie來竊取會話信息。因此,除非您有充分的理由不要,否則當您希望它們只通過HTTPS傳輸時,請始終爲Cookies設置安全標誌。