2013-05-29 78 views
1

我期待在如何使用Node.js實現聊天/郵件系統和socket.io通過郵件等PHP和Node.js的共享會話標識

但是系統將使用PHP使用PHP的身份認證系統會話。顯然我需要一些方法來知道連接的node.js用戶X是PHP認證的用戶X?

經過一些研究,似乎使用Memcache與節點共享php會話(通過存儲在JSON等中)是相當常見的。然而,仍然存在確定哪個連接節點用戶是存儲php會話的問題?

我的第一個想法是使用PHP設置的cookie,利用PHPSESSID值等 - 但肯定用戶可以將該cookie修改爲其他人的PHPSESSID,並且bazinga? (很明顯,他們要麼知道PHPSESSID,要麼很善於猜測,但這仍然是一個安全漏洞?

你對此有什麼看法?是達到我想要的最好方法嗎?

回答

5

使用PHP會話ID應該足夠安全以滿足您的需要,事實上,這是幾乎任何PHP站點都會處理身份驗證的方式。一旦用戶登錄,某種「令牌」必須保存在瀏覽器中讓網站知道他們是誰,這樣就可以確定他們已經登錄了,你可以創建你自己的,或者如果你更容易使用已經創建好的會話,這個想法是會話ID值很長足夠複雜,足以使其在特定用戶的有效期內無法被猜測, s身份驗證。

如果您想進一步保護您的用戶,請確保您始終使用SSL連接,這樣無法監聽會話ID。

+3

+1,總之,會話ID是一個臨時密碼,只能使用一次。 –

+0

這是一個很好,簡明的說法。 – doublesharp

+0

太好了,謝謝。我只是想在繼續之前得到另一個意見:) – swiss196