2014-10-11 37 views
0

我有一個用戶登錄到一臺主服務器上,它具有多種用途的PHP應用程序。我想在完全獨立的Web服務器上擁有一個完全獨立的應用程序,並使用完全獨立的數據庫,但我不希望用戶需要單獨登錄,而是使用在主服務器上執行的相同驗證會話,以及隨身攜帶,基本上將它們轉移到其他服務器。業內發現的將登錄用戶從一臺服務器轉移到另一臺服務器而不登錄的最佳做法是什麼?將客戶端會話從一臺服務器轉移到另一臺服務器

我想加密一個URL,只能通過共享一個祕密加密密鑰的兩臺服務器上的腳本進行加密/解密。

我想讓源服務器向目標服務器發送一條祕密消息,要求臨時登錄密鑰,然後將其附加到用戶發送到的目標服務器的URL,並在密鑰獲得時立即使密鑰無效那裏。源服務器應該通過https API還是通過ssh與目標服務器通信?

我正在尋找一些有關此過程的行業最佳實踐的指導。

回答

0

我通常使用的技術(正確或錯誤)是在數據庫中存儲一個臨時哈希,然後發送一個包含該哈希到目標服務器的請求以及關於該用戶的一些獨特信息,通常是您的auto_increment pk。目標服務器會根據數據庫中的內容檢查ID和哈希值,並確保有待處理的單一登錄請求。目標服務器然後創建它需要的任何會話並處理臨時哈希。

這是相當安全的,因爲以這種方式劫持某人的會話將要求他們在發生單點登錄的確切時刻同時猜測id和散列。即使發生這種非常小的機會,也可以通過存儲狀態轉移日期並在30秒左右後使其無效來緩解。

相關問題