2014-03-30 94 views
0

我正在開發一個Web應用程序,並且在實現登錄功能時遇到困難。 在我的應用程序中,用戶必須登錄才能添加新項目(行到數據庫,並將相應的用戶標識添加到新創建的行)。此外,用戶可以導航到應用程序中的不同頁面,這都需要用戶登錄。所以,一旦登錄成功,用戶ID就可以存儲在cookie文件中,以便與所有頁面共享。但是我意識到,用戶使用他的憑證登錄後,可以更改cookie文件並將cookie中的用戶標識更改爲其他人,然後查看另一個人的機密數據。如何防止這種類型的攻擊? PS:我爲我的應用程序使用servlet和JSP。維護會話中的Web應用程序日誌安全實現

+0

http://www.jsptut.com/sessions.jsp –

回答

1

一種方法是,不是將用戶ID存儲在cookie中,而是將認證令牌存儲在會話cookie中;這個令牌需要每個用戶都是唯一的,並且很難猜測。爲此,您可以對用戶標識進行哈希和加密以生成身份驗證令牌。

爲了提高安全性,請確保令牌在會話結束時或用戶註銷後過期。

它也可以幫助您通過HTTPS執行此操作,以便您的流量得到加密。

這是一個很好的指南web based authentication

+0

如果我想添加有關將項目添加到數據庫的用戶的詳細信息,無論如何我都需要用戶ID。您能解釋一下,身份驗證令牌如何才能幫助您唯一識別添加字段的用戶,而不僅僅是幫助識別用戶是否已登錄? – user3388324

+1

當然,您需要的是一種將用戶標識(例如會話表)與服務器端一起存儲的身份驗證令牌。通過這種方式,每次有請求時,您都可以驗證cookie中是否存在身份驗證令牌,並使用它從服務器端存儲中檢索用戶ID。 –

+0

是否提及特定來源,指出技術的優點或缺點? – user3388324