2010-11-20 53 views
3

想象一下,使用谷歌齒輪作爲各種應用程序級數據存儲機制的網站。在應用程序處於活動狀態時,使用異步Web服務調用與服務器間歇性地複製此數據。基於html的網站中電腦的真正獨特識別

問題在於訂閱監視機制。想象一下基於獨特PC的這項服務的訂閱系統。 Web服務如何唯一標識與其同步數據的PC(或更具體的網頁瀏覽器)?

我自然的第一個想法是將GUID存儲在每臺機器的本地數據庫中,然後將其發送出去,但如果查看谷歌齒輪存儲文檔,則會發現數據庫未加密,並且很容易被篡改到sqllite文件是所有必需的,可以使用各種工具來完成)。

我最近一直在想什麼是肯定有計算一個簽名是可重複的每臺機器,但唯一使用JavaScript?到目前爲止,這個實現已經避免了我(如果只有navigator.userAgent.uniqueID存在 - 雖然不會爲隱私做很多事情)。

最後一個念頭顯然是寫一個ActiveX控件和插件的Firefox提供此功能,但是這將是在屁股巨大的痛苦......

任何見解將不勝感激。

回答

1

你在本地數據庫中使用GUID的想法不是一個壞主意。您可以通過允許服務器在連接時爲本地數據庫發出GUID來進一步擴展。然後在服務器上保存用於複製的有效GUID。如果該機器使用與服務器上的有效GUID相匹配的GUID開始複製過程,則他們將被授權發送其數據。最重要的是,您可以過期並重新發布GUID與本地數據庫。最後,我還會明智地管理髮布給單個用戶的GUID數量。如果用戶使用用戶名jdoe進行身份驗證,則唯一允許使用向jdoe頒發的GUID的人是jdoe。 (也許用戶名不是最好的輔助標識符,但使用這樣的東西可以幫助你保持錯誤的數據被引入到系統中)

+0

這種方法的問題是,它處理併發用戶,而不是獨特的PC,雖然真的,從你訂閱的角度來看,也許我不應該在意...... 真的很喜歡經常改變guid的想法。沒有跨過我的腦海。所有其他建議也被採納。 – 2010-11-23 06:38:45