我已經使用.htaccess
完成了從www.abc.com
到www.def.com
的重定向。使用htaccess重定向後無法檢索PHP會話
重定向是成功的,但我有一個問題,即Cookie和會話只能訪問使用def.com
訪問網站時訪問。 從abc.com進行檢查時,會話將會丟失。
如何複製或閱讀def.com
的會話?
請幫幫我。
我已經使用.htaccess
完成了從www.abc.com
到www.def.com
的重定向。使用htaccess重定向後無法檢索PHP會話
重定向是成功的,但我有一個問題,即Cookie和會話只能訪問使用def.com
訪問網站時訪問。 從abc.com進行檢查時,會話將會丟失。
如何複製或閱讀def.com
的會話?
請幫幫我。
好吧,你不能簡單地做到這一點。也許看到this post?
包含會話ID(因此,您的整個會話)的cookie只在創建它的域上有效。因此,當您更改域名時,Cookie不再可用。要解決此問題,您可以將會話ID發送到新域(這不是很安全,但您可能不在乎),然後爲該域創建新的cookie和會話。
這被稱爲「跨站點腳本」(XSS),很多人都非常努力地工作,以確保你想要的是不可能的。如果您確實找到了解決辦法,請務必告訴我們,因爲那將是一次重大的安全漏洞。
-1這不叫做跨站腳本。 – Gumbo 2011-01-25 09:55:16
當您可以從兩臺服務器訪問會話數據存儲時,只能在兩個域上共享相同的會話。根據session data storage type and location,您可能需要編寫您的own session storage handler。
除此之外,還需要確保兩個域都使用相同的會話ID。如果您想使用Cookie作爲會話ID,則只能在域名共享公用超級域名時使用,因此它們是域名的子域名,例如foo.example.com和bar.example。 com分享超級域名example.com。在這種情況下,您需要adjust the session cookie parameterdomain並將其設置爲值爲.example.com
超級域example.com。
否則,就像您的示例中,域名僅作爲頂級超級域名共享com,您不能使用cookie(首先)。但是,您可以使用URL將會話ID從一個域傳輸到另一個域。要做到這一點,您需要啓用session.use_trans_sid並禁用session.use_only_cookies(至少在重定向目標域上),並將會話ID附加到從一個域指向另一個域的每個URL(這裏您可以使用SID
常量)。
這很難 - 如果你能解釋爲什麼你做了這個重新定向,爲什麼你需要訪問會話數據,我們或許能找到一個替代方案,如果沒有下面的答案適合。 – 2011-01-25 10:50:35