我有一個檢索http會話變量的問題。我有兩個服務器,一個碼頭和一個Apache。 Apache和Java中的兩種語言PHP在碼頭。當用戶登錄到網站時,他或她的配置文件ID將以Session變量的形式存儲在PHP中的Apache服務器中。我可以以某種方式從使用Java的Jetty服務器檢索此會話變量嗎?跨語言和服務器http會話變量
回答
對於跨服務器會話,您可以將會話保留在Cookie中。但是你需要確保使用一些強大的算法和密鑰來加密這些cookie。
如果您只想存儲用戶ID。然後,您可以將ID存儲爲其公開ID,並將其與該ID一起存儲,如果ID與您一樣可以使用簽名來檢測它。
認證
1. One contains ID and
2. other contains signature of ID like using function in php called hmac_hash
後創建兩個Cookie無論你這就需要身份驗證的請求。
1. Using ID and same secret generate same signature back.
2. Check if the signature you generated is same as one you got in cookie.
警告:輕微的失誤也會造成數據公開。
警告2:大型cookie會讓網站變慢一點。
是不是我,我會試圖重寫會話處理程序在PHP中,並將會話的東西存儲在數據庫中。請參閱http://us2.php.net/manual/en/function.session-set-save-handler.php
您可以控制會話變量的存儲方式和存儲位置。你可以從cookie中讀取會話句柄或任何其他語言的任何東西,併爲java端編寫你自己的東西。
是的,但是當從本地會話轉移到數據庫持久會話時,會有巨大的性能影響。 – FearUs 2011-03-01 07:42:58
改爲使用memcached會話處理程序。它工作出色。 – 2012-03-07 17:57:04
- 1. 會話和服務器變量Session_End中
- 2. 跟蹤會話變量中的語言
- 3. Mysql語言環境會話變量?
- 4. 會話變量和Web服務
- 5. 會話變量,Web服務,ASP.NET和C#
- 6. 在不同服務器上託管的多語言網站的跨域會話
- 7. ASP.NET會話ID - 跨服務器唯一
- 8. 檢查跨服務器的會話
- 9. PHP跨會話變量
- 10. 會話由服務器或語言處理?
- 11. 會話變量在Visual Studio和服務器上行爲不同
- 12. Web服務跨語言參數類型
- 13. WCF服務中的會話變量
- 14. Node.js - 如何在http服務器和網絡服務器之間共享會話?
- 15. PHP Codeigniter多語言網站使用會話變量來存儲語言密鑰
- 16. SSO OAuth2Authentication會話和服務器端http請求
- 17. 的java:HTTP服務器和客戶端之間的HTTP會話
- 18. 跨語言共享常量
- 19. 跨子域維護會話變量
- 20. 會話變量不能跨越
- 21. PHP會話變量不跨越
- 22. 跨語言雙向客戶端 - 服務器通信方法?
- 23. 跨語言客戶端/服務器的雙向RPC選項
- 24. 無法訪問不同服務器上的會話變量
- 25. 如何創建MS SQL服務器會話(連接)變量
- 26. 取消所有的會話變量與服務器命令
- 27. php會話變量不在現場服務器上工作
- 28. 一旦會話超時,服務器上的內存變量
- 29. 重新啓動服務器時是否丟失會話變量?
- 30. 簡單的服務器端Flask會話變量
我並不擅長安全性,但強大的加密功能以及Cookie如何幫助提高用戶的安全性?與存儲普通Cookie不同嗎? – einstein 2011-03-01 06:46:30
在會話中,如果您存儲一些不應公開的數據,可能是他的姓名或電子郵件。在這種情況下,如果數據被加密,那麼複製cookie的人將無法解密並知道實際數據是什麼。既然你有密鑰解密它,你可以讀取數據。 – Zimbabao 2011-03-01 06:48:49
@津巴寶:你能告訴我如何在PHP中做到這一點? – einstein 2011-03-01 07:11:22