Javascript 基于html的网站中PC的真正唯一标识

Javascript 基于html的网站中PC的真正唯一标识,javascript,asp.net,abstract,crc,Javascript,Asp.net,Abstract,Crc,想象一下,有一个网站使用GoogleGears作为各种应用程序级数据的存储机制。当应用程序处于活动状态时,使用异步webservice调用使用服务器间歇性地复制此数据 问题在于订阅监控机制。设想一个基于独特PC的服务订阅系统。Web服务如何唯一地识别正在与之同步数据的PC(或者更具体地说是Web浏览器) 我的第一个想法是在每台机器的本地数据库中存储一个GUID,并随请求一起发送,但如果查看google gears存储文档,您会发现该数据库未加密,很容易被篡改(附加到sqllite文件就是所需的全

想象一下,有一个网站使用GoogleGears作为各种应用程序级数据的存储机制。当应用程序处于活动状态时,使用异步webservice调用使用服务器间歇性地复制此数据

问题在于订阅监控机制。设想一个基于独特PC的服务订阅系统。Web服务如何唯一地识别正在与之同步数据的PC(或者更具体地说是Web浏览器)

我的第一个想法是在每台机器的本地数据库中存储一个GUID,并随请求一起发送,但如果查看google gears存储文档,您会发现该数据库未加密,很容易被篡改(附加到sqllite文件就是所需的全部,可以使用各种工具完成).

我最近一直在想的是,肯定有某种方法可以计算出一个签名,该签名在每台机器上都是可重复的,但仅使用javascript是唯一的?到目前为止,我还没有实现这一点(如果只有navigator.userAgent.uniqueID存在的话——尽管这对隐私没什么好处)

最后一个想法显然是编写一个ActiveX控件和firefox插件来提供此功能,但这将是一个巨大的麻烦


如有任何见解,将不胜感激

在本地数据库中使用GUID的想法并不坏。您可以通过允许服务器在连接时为本地数据库发出GUID来进一步扩展。然后在服务器上保存用于复制的有效GUID。如果该计算机开始复制过程时使用的GUID与服务器上的有效GUID相匹配,则将授权它们发送数据。除此之外,您还可以使用本地数据库不时地过期并重新发布guid。最后,管理发布给单个用户的guid数量也是明智之举。如果用户使用用户名jdoe进行身份验证,那么唯一允许使用发给jdoe的GUID的人就是jdoe。(也许用户名不是最好的二级标识符,但使用类似的方法可以帮助您避免将虚假数据引入系统)

这种方法的问题是,它处理的是并发用户,而不是唯一的pc机,尽管实际上,从您的订阅角度来看,也许我不应该在意。。。。非常喜欢经常更改guid的想法。我没有想到。所有其他建议也被采纳。