我們希望爲我們未來的項目提供更安全的登錄系統,而不是使用會話狀態來判斷用戶是否已登錄。如果我的理解是正確的,一旦用戶通過表單認證進行了認證,就會在用戶機器上生成一個cookie。那有多安全? Cookie是否容易受到與會話劫持類似的劫持形式?如果用戶不接受cookie,該怎麼辦?有沒有更好的方法我應該看看?
在此先感謝。
我們希望爲我們未來的項目提供更安全的登錄系統,而不是使用會話狀態來判斷用戶是否已登錄。如果我的理解是正確的,一旦用戶通過表單認證進行了認證,就會在用戶機器上生成一個cookie。那有多安全? Cookie是否容易受到與會話劫持類似的劫持形式?如果用戶不接受cookie,該怎麼辦?有沒有更好的方法我應該看看?
在此先感謝。
簡短的回答是因爲你把它它是安全的。大多數基於表單的身份驗證系統使用cookie來與最終用戶保持會話,但如果您選擇這樣做,則可以使用其他技術。
對於基於cookie的身份驗證,您需要創建一些標識身份驗證用戶的令牌。這個標記必須是不容易被猜到的東西。該令牌可以通過cookie傳遞或存儲在會話中,在這種情況下會話cookie存儲在客戶端計算機上,並且認證令牌只能在連接的服務器端訪問。如果您不希望緩存中的cookie被捕獲,那麼您可以製作Cookie 安全和HttpOnly,前者僅通過HTTPS發送,後者則使Cookie無法從JavaScript訪問。
如果最終用戶不接受cookies,那麼會話ID通常放在URL中,這是不安全的。
看看這個鏈接Session Fixation
用戶的會話ID不用作身份驗證cookie的一部分 - 身份驗證cookie和會話cookie是分開的。
爲了防止會話劫持閱讀這篇文章 Foiling Sessiong Hijacking Attempts
提供安全連接,您就必須使用HTTPS
你也可以做Cookie的Forms身份驗證(一套在web.config)中嵌入的身份驗證票到URL。 – 2011-05-10 19:05:21
就cookie而言,它是加密的。 – CheckRaise 2011-05-10 19:09:26