2015-04-01 196 views
0

所以我一直在尋找一些關於會話安全性的信息,只能找到與PHP會話相關的信息。會話安全性是否足夠用於java?

現在我的web應用程序根據數據庫對用戶進行身份驗證,如果成功,他們將用戶對象(一個hibernate實體)作爲屬性放入HttpSession中。

我的網絡應用程序,然後驗證該屬性已設置,並將使用該用戶對象爲所有未來的數據庫查詢並確認用戶是授權。

我的網絡應用程序將爲小企業管理資金和支付,安全性是我的一個主要關注點。如果攻擊者能夠冒充用戶,他們可以退款並取消銷售。支付是通過分條處理的,因此卡的詳細信息將是安全的,但用戶將擁有API訪問權限以啓動退款。

將此用戶對象設置爲HttpSession屬性是否足夠安全,還是應該添加更嚴格的安全措施?如果是這樣,你可以請建議其他方法來保護用戶帳戶。

所有會話均通過SSL進行。

謝謝!

+0

可能會轉到http://security.stackexchange.com/? – 2015-04-01 16:08:06

回答

2

好了,基本上你永遠也不應該只對會議在Java/PHP或任何其他語言的財務應用程序打交道時依賴。通過短信至少使用「一次性」密碼,以批准「退款和取消銷售」等關鍵操作。

備份到Java的會議,這是一個良好的開端否認存儲會話ID作爲請求參數 - 第一和會話固定保護最容易(這web.xml中添加):

<session-config> 
     <cookie-config> 
      <http-only>true</http-only> 
     </cookie-config> 
    </session-config> 

由於複雜的解決方案嘗試HDIV http://www.hdiv.org/

+0

謝謝,我選擇這個作爲HDIV的答案。不知道這個安全框架是否存在,現在實施後感覺好多了。我已經提出了其餘的答案,因爲它們都很好。感謝大家。 – FMC 2015-04-02 09:50:48

+0

隨時與我聯繫,如果將堅持某處 - 我有很多練習) – 2015-04-02 09:54:01

2

會話狀態保存在服務器端,如在PHP中。會話ID由瀏覽器作爲cookie發送,如在PHP中。可以通過竊取會話cookie來模仿用戶,但由於流量是使用HTTPS加密的,唯一的方法是從瀏覽器內存或服務器內存中竊取。

+0

嗯,有CSRF ...所以你不一定需要有這樣瘋狂的訪問才能利用無人看守的會話cookie,對吧? – Gray 2015-04-01 17:05:58

+0

確實如此。通過冒充,我的意思是將真實應用程序與其他用戶的憑證一起使用。 CSRF確實可以欺騙真實用戶通過讓他認爲他在不同的應用上發佈數據來將數據發佈到真實應用中。解決此問題的方法是使用JavaScript發佈表單並將會話cookie作爲HTTP標頭髮送,除了將其作爲cookie發送外。服務器然後必須檢查標題和cookie匹配。 – 2015-04-01 17:08:48

+0

或會話固定。或XSS – 2015-04-01 17:10:40

1

不,您至少需要擔心https://www.owasp.org/index.php/Top_10_2013-Top_10

對於特定類型的應用程序,應首先關注SQL注入,會話固定,CSRF,XSS和不安全的直接對象引用。

我就開始使用Web應用程序防火牆ModSecurity的一樣爲Apache的httpd