禁用COOKIE後SESSION還能用嗎

2021-07-12 03:46:48 字數 1264 閱讀 7579

1.asp

在asp中,session必須倚賴cookie才可用,session是儲存在伺服器端的,而cookie是儲存在客戶端的,相對

而言,session的安全性和可靠程度都比cookie高。

2.php

在php中,通過相關的配置,可以讓session不依賴cookie而存在。

php.ini中,把session.use_trans_sid設成1,那麼連線的後面就會自己加sessionid,就通過url來傳遞

session的key了,這時客戶端就算禁止了cookie也可以使用session

這是因為:

session,儲存於伺服器端(預設以檔案方式儲存session),根據客戶端提供的session id來得到使用者的文

件,取得變數的值,session id可以使用客戶端的cookie或者http1.1協議的query_string(就是訪問的url的「

?」後面的部分)來傳送給伺服器,然後伺服器 讀取session的目錄

最後說明:

php.ini 中 session 的配置

session.use_only_cookies = 1; // 開啟僅使用cookies存放會話id

session.use_trans_sid = 1; // 允許sessionid通過url明文傳輸

在這種情況下雖然已經允許了sessionid通過url明文傳輸,擔是同時又開啟了僅使用cookies存放會話sessionid,所以在url中明文傳輸的phpsessionid引數值是無效的,session不能用。

php.ini 中 session 的配置

session.use_trans_sid = 0; // 禁止sessionid通過url方式明文傳輸

session 不能用, 這是最這安全的做法,也是php.ini 的預設配置

session機制

session機制是一種伺服器端的機制,伺服器使用一種類似於雜湊表的結構(也可能就是雜湊表)來儲存資訊。當程式需要為某個客戶端的請求來建立乙個session的時候,伺服器首先檢測這個客戶端的請求裡是否已經包含了乙個session標識-稱為session_id,如果包含則說明以前已經為此客戶端建立過session,伺服器就按照session_id把這個session檢索出來使用(如果檢索不到,可能為新建乙個),如果客戶端請求不包含session_id,則為客戶端建立乙個session並且生成乙個與此session相關聯的session_id(session_start() 一下),這個session_id將在本次響應中返回給客戶端。

PHP中禁用cookie後的session

我們知道當客戶端瀏覽器把cookie禁掉後,伺服器端的session是沒有辦法正常使用的。因為伺服器端的session是通過sessionid來區分不同使用者的session的,而這個sessionid就是通過客戶端的cookie傳遞到伺服器端的,更嚴格地說,因為在php使用session star...

瀏覽器禁用cookie後使用session

php中的session在預設情況下是使用客戶端的cookie來儲存session id的,所以當客戶端的cookie出現問題的時候就會影響session了。必須注意的是 session不一定必須依賴cookie,這也是 session相比cookie的高明之處。當客戶端的cookie被禁用或出現問...

禁用cookie後session的保持

我們都知道當在session會話有基於cookie和基於url兩種傳遞sessionid的方法。為了實現客戶端禁止cookie傳送的情況也不影響客戶登陸 可以設定php.ini中 session.use trans sid 1,表示當客戶端瀏覽器禁止cookie的時候,頁面上的鏈結會基於url傳遞s...