是否可以在我的PHP子應用程序和我的其他子域上的Ruby應用程序之間共享會話?在Ruby和PHP之間共享會話
我真的不知道從哪裏拿到它。我知道我可以手動將域設置爲根域,以便該cookie對所有子域有效,但是如何從/到會話獲取/設置內容以便在子域之間共享?
我主要想用這個來分享我的整個子域名的登錄信息。
爲了知識的緣故,如果這是一個錯誤的方法來解決這個問題,儘管這是一個可行的方法,但我想了解如何做到這一點,以及爲什麼不應該這樣做。
謝謝大家!
是否可以在我的PHP子應用程序和我的其他子域上的Ruby應用程序之間共享會話?在Ruby和PHP之間共享會話
我真的不知道從哪裏拿到它。我知道我可以手動將域設置爲根域,以便該cookie對所有子域有效,但是如何從/到會話獲取/設置內容以便在子域之間共享?
我主要想用這個來分享我的整個子域名的登錄信息。
爲了知識的緣故,如果這是一個錯誤的方法來解決這個問題,儘管這是一個可行的方法,但我想了解如何做到這一點,以及爲什麼不應該這樣做。
謝謝大家!
如果您希望以這種方式共享會話(跨越PHP/Java/Ruby /等),您需要從數據庫保存會話(並訪問它們)。
請參見:http://php.net/manual/en/function.session-set-save-handler.php
而且你需要在Ruby中相同的方法。
要共享的cookie跨域,還需要從""
默認爲session.cookie_domain
改變PHP會話配置選項(這將插入你的域名)到:".yourhost.com"
(注意前綴期)。
這可以通過共享相同數據庫的應用程序來解決,也可以通過一些cookie的幫助來解決。
這將是明智的存儲某種獨特的信息工作站或瀏覽器,以便竊取會話,複製cookie不會工作。
我應該存儲什麼樣的獨特信息?我應該生成什麼樣的隨機字符串?如果我彙集了關於主機的一些信息,它會「足夠安全」嗎?就像一個包含遠程主機和遠程地址的MD5散列一樣?有了這個我可以「匹配」服務器端的信息......幫助? :P – 2010-06-23 12:20:16
你說得對。唯一的信息可能是來自http頭+鹽的遠程主機ip +用戶代理行的MD5哈希(如果是SHA,則更好)。 – salchams 2010-06-25 20:22:46
這次聚會很晚,但我最近自己遇到了這個問題,並在我的博客上發佈了一個Rails PHP兼容會話存儲(應該很容易將原理適配到非Rails應用):http ://watsonbox.github.com/blog/2012/05/01/sharing-session-between-rails-and-php/ – 2012-07-26 21:24:10