05.14 Java高級編程細節——Http中Cookie總結

Cookie很重要,但是到底有多重要,多關鍵,您是否真的懂了?請看本文的分析。

其一

Cookie

瀏覽器請求的Cookie中往往會攜帶敏感信息。服務器一般會將當前用戶的會話ID存在cookie裡,會話的具體內容存在服務器端,會話的內容很敏感。

瀏覽器請求時會攜帶Cookie信息,服務器根據Cookie信息中的會話ID找到對應的會話內容。會話內容裡可能存儲了用戶的權限信息,拿到這部分權限信息後就可能隨意控制修改用戶的數據。

Java高級編程細節——Http中Cookie總結

因為HTTP協議的不安全性,請求數據包很容易被竊聽,Cookie中的會話信息很容易被盜。解決方案之一就是在會話中記錄用戶的終端信息和IP地址信息,如果這些信息突然發生改變,需要強制用戶重新認證。

不過高級的黑客是可以偽造出和用戶真實請求一摸一樣的數據包的。最徹底的解決方案還是採用HTTPS協議。

普通的Cookie信息可以通過Javascript腳本獲取到。如果黑客通過某種方式在網頁中植入不安全的腳本,將用戶的Cookie拿到然後發送到遠程的第三方服務器中,那麼Cookie中的信息就被洩露了。

其二 Cookie的兩個重要屬性

Set-Cookie: id=a3fWa; Expires=Wed, 21 Oct 2015 07:28:00 GMT; Secure; HttpOnly

被標記為Secure的Cookie信息在HTTP請求中不會被傳送,它只會在HTTPS請求中傳送,避免數據被洩露。

被標記為HttpOnly的Cookie信息是無法通過Javascript API獲取到的,它只會在請求中傳送。這樣可以避免黑客通過網頁腳本方式竊取Cookie中的敏感信息。

Cookie(甜點)如此好吃,黑客們總想通過Cookie做各種文章。

Java高級編程細節——Http中Cookie總結


分享到:


相關文章: