2012-01-05 39 views
2

我需要您为我的web应用程序提供宝贵的输入信息。如何通过Web应用程序在客户端机器上存储SDF文件?

事情是,我需要存储一个SDF数据库,以便我可以跟踪用户在哪个机器上激活了该产品。如果用户在机器A上激活产品,我必须将产品密钥存储在该机器上。

如果他试图用另一台机器B访问它,我需要阻止对该程序的访问。

PS:

我期待存储DB在客户端机器的原因是在一个月前I tried to capture the MAC Address,我没有得到任何解决方案。

请给我一个解决方案访问本地数据库或获取客户端机器MAC地址的想法。

回答

1

您不需要整个数据库来存储单个许可证密钥 - 另外,除非用户拥有插件/插件,否则无法通过Web浏览器在客户端PC上存储任意信息(至少不会HTML5被更广泛地采用)。

Flash可以做到这一点,谷歌的Gears和各种类似的插件也可以做到这一点 - 但不是本地的。

另外,什么是阻止用户将密钥从一台机器传输到另一台机器?

您最好采用“指纹识别”方法 - 收集关于机器的一些独特信息,对其进行散列并将散列存储在数据库中的许可证信息旁边。这样,当客户端连接时,您可以在允许访问之前检查ahsh是否正确。

棘手的问题是散列和如何得到它 - 你需要挑选一些你可以轻松访问的东西,是不可能改变的,而且是PC-而不是用户特定的。

不要忘记来自客户端PC的任何信息应该被视为可疑/恶意。依靠客户端每次向您发送产品密钥只需要一个代理/数据包嗅探器,以允许其他计算机上的人员伪造它。

简而言之,这不能做到可靠和稳健 - 如果可以的话,就不会有软件盗版。无论您提出什么方法,都应该完全依赖于服务器端决策,并且希望尽可能地使其尽可能地复杂,以截获身份验证消息(至少在处使用SSL)。最后一点 - 假装每个客户端PC都是恶意黑客 - 如果黑客知道产品密钥,他们可以复制它 - 所以不要给他们钥匙,给他们一个随机哈希,当向里面看时你的系统找到了钥匙。这样,你可以禁用/刷新散列,如果他们被盗用,而不必更改基础产品密钥

+0

感谢您的回复...我已经尝试使用HTML5,但IE浏览器是轻微不兼容不像铬...所以仍然在寻找合适的soln ...谢谢你,并说得好。 – 2012-02-10 05:24:55

相关问题