2008-12-04 102 views
4

我聽說有人認爲在會話中將服務器信息存儲在會話中是一個壞主意,它不安全。

因此,在多頁業務流程功能中,應用程序正在將數據寫入數據庫,然後在需要時檢索信息。 在會話中存儲私人信息有沒有必要不安全?Java會話變量

回答

7

只要會話本身從hijacking安全,在Session中存儲屬性就沒有安全風險。

有一些涉及併發和會話的嚴重問題。由於多線程對於單個會話同時發出請求非常普遍,因此您必須確保存儲在會話中的對象是線程安全的。要麼使它們不可變,要麼使它們像線程安全一樣具有內存障礙,如同步。我強烈推薦article on the subject by Brian Goetz

+0

文章鏈接被破壞:-( – avgvstvs 2013-12-12 16:35:18

4

HTTP會話本身並非天生不安全。但是,根據您的應用程序服務器/容器,會話cookie傳回瀏覽器的機制(以及缺乏傳輸層安全性 - SSL)可能允許惡意方執行各種攻擊(跨站點腳本,會話劫持等)。 我會花一些時間研究這些事情以及SQL注入以瞭解使用HTTP會話的完整分支。如果您的應用程序在防火牆內運行,那麼通常比這個安全風險更大,比如社交工程。

1

除了性能和併發問題,您還應該考慮可用性。做多個打開的頁面,後退按鈕的工作,書籤,鏈接到您的網站等,工作?我最後在aerlingus.ie的錯誤日預訂了一個航班,並且幾乎在lastminute.com預訂了錯誤的酒店,因爲他們的網站性能不佳。