2010-11-20 54 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