Cookie與Session的安全性

2022-06-19 15:21:07 字數 845 閱讀 3783

說到cookie與session我們首先要說一下為什麼要引入這兩個東西,這兩個多西到底是幹什麼的

由於http協議使無狀態的:

由於http協議無狀態的特性,我們在某些存在狀態的**中(如登陸),如果只是用http協議而不加入狀態保持,那當使用者每次訪問乙個新的網頁都需要使用者進行登陸,降低使用者的體驗度,因此引入cookie和session對會話的狀態進行儲存,以達到狀態保持的效果。

儲存在瀏覽器中,以鍵值對的形式存在,可以用來做使用者認證,儲存上限一般為4k; 由於資料儲存在瀏覽器中,容易被其他惡意程式利用,資料的安全性不高。

將使用者的會話資訊儲存在伺服器端,key值是隨機產生的字串,value值時session的內容,依賴於cookie將每個使用者對應的key值儲存到瀏覽器中; session沒有具體的大小限制,可以儲存的資料量比cookie大; 由於資訊儲存在伺服器端,不會輕易的被惡意程式利用,資料的安全性相對較高

上面也提到了,cookie是存在使用者的瀏覽器中的,是可以被惡意程式獲取並加以利用的;那麼問題來了,既然cookie內的內容會被獲取到,那存在cookie中的sessionid(也就是key值),豈不是也會被獲取到並加以利用?

沒錯,其實http本身就不安全,只要是存在cookie中的資料都可以獲取到並加以利用,但是session的安全性也是相對的,由於資料儲存在資料庫中,就算sessionid被獲取利用,但是session中的資料並不會被惡意程式獲取,這一點相對cookie來說就安全了一些;

所以使用http協議的網頁本身就不會帶有較為敏感的資訊(如支付),如果涉及到一些敏感的資訊,並不希望被輕易獲取到,還是建議使用https協議。

以上純屬個人理解,如有錯誤,歡迎指正

**於:

cookie與session的關聯

前提 cookie沒有被禁用。當用瀏覽器登入到某 伺服器時,先找對應的cookie檔案,當首次訪問是當然沒有cookie檔案,所以在請求頭部中沒有cookie的內容,即在請求頭部中沒有類似cookie jsessionid 的內容,這時當請求到達伺服器後,伺服器看請求頭中沒有jsessionid值,...

session與cookie的區別

讓我們用幾個例子來描述一下cookie和session機制之間的區別與聯絡。筆者曾經常去的一家咖啡店有喝5杯咖啡免費贈一杯咖啡的優惠,然而一次性消費5杯咖啡的機會微乎其微,這時就需要某種方式來紀錄某位顧客的消費數量。想象一下其實也無外乎下面的幾種方案 1 該店的店員很厲害,能記住每位顧客的消費數量,...

session與cookie的區別

1 session儲存在伺服器,客戶端不知道其中的資訊 cookie儲存在客戶端,伺服器能夠知道其中的資訊。2 session中儲存的是物件,cookie中儲存的是字串。3 session不能區分路徑,同乙個使用者在訪問乙個 期間,所有的session在任何乙個地方都可以訪問到。而cookie中如果...