2012-01-04 91 views
18

我有我的應用程序的會話ID。現在我想通過使用此會話ID來獲取所有會話變量。如何使用會話ID獲取會話變量

我使用<?php echo session_id()?>獲取會話ID,但如何通過使用此會話ID獲取所有會話對象值?

+1

答案只有一個說了如何使用SESSION_ID獲取會話數據。 – 2013-04-10 05:33:45

回答

51

根據php.net有幾種方法可以將現有會話ID泄漏給第三方。泄漏的會話ID使第三方能夠訪問與特定ID關聯的所有資源。首先,帶有會話ID的URL。如果您鏈接到外部網站,則包含會話ID的網址可能會存儲在外部網站的引薦來源日誌中。其次,更積極的攻擊者可能會聽你的網絡流量。如果未加密,則會話ID將通過網絡以純文本形式傳輸。這裏的解決方案是在您的服務器上實現SSL,並使其成爲用戶的必需條件。

這引發了一個問題,您如何獲得會話ID但無法訪問該腳本?

無論如何,你需要設置會話ID,然後啓動它......然後訪問數據。

session_id($whatever_id_you_have); 
session_start(); 
echo $_SESSION['somekey']; 
+6

+1只有這個答案說如何使用session_id獲取會話數據。 – 2013-04-10 05:31:10

+1

當session.use_strict_mode設置爲1或true時,不能使用session_id($ sid)爲當前會話設置會話ID。 http://php.net/manual/en/function.session-id.php – 2017-01-26 17:35:24

2

var_dump($_SESSION);會向您顯示當前會話的內容,然後您可以像訪問普通數組一樣訪問這些值。

+0

但現在我無法編輯腳本並只有會話ID。所以如何獲得會話varialbes – 2012-01-04 11:46:16

1

您可以檢查使用此一個所有會話值..

print_r($_SESSION);