代码之家  ›  专栏  ›  技术社区  ›  Maxim Gershkovich

基于html的网站中pc的真实唯一性识别

  •  3
  • Maxim Gershkovich  · 技术社区  · 14 年前

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

    问题在于订阅监视机制。设想一个基于唯一PC的订阅系统,Web服务如何唯一地识别与之同步数据的PC(或者更具体地说是webbrowser)?

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

    我最近一直在想,肯定有办法计算出一个签名,它可以在每台机器上重复,但只使用javascript是唯一的?到目前为止,我还没有实现这一点(如果只有导航器。UsAgAut.UnQuiID就存在了,尽管不会为隐私做很多事情)。

    最后一个想法显然是编写一个ActiveX控件和firefox插件来提供这个功能,但这将是一个巨大的痛苦的屁股。。。

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

    1 回复  |  直到 14 年前
        1
  •  1
  •   John Hartsock    14 年前

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