我正在写一个商业产品,它使用一个简单的注册机制,并允许用户在购买之前使用应用程序的演示阶段。
我的应用程序必须在某个地方存储注册信息(如果输入)和/或第一次启动的日期,以计算用户是否仍在演示/试用期间。虽然我基本上已经完成了注册机制本身,但我现在必须找到一种好方法来将注册信息存储在用户的磁盘上。
最明显的想法是将试用期存储在首选项文件中,但由于用户倾向于不时地删除/修补这些文件,因此将注册信息保存在一个单独的、更隐蔽的文件中可能是一个好主意。
所以我的问题是:在Windows、Mac和Linux上保存和创建这样的隐藏文件的最佳位置/策略是什么?到目前为止,我脑海中浮现的是:
Linux/Mac OS X
当涉及到用户可以向其写入文件的位置时,大多数类Unix系统都会受到相当的限制。在大多数情况下,这只是/tmp目录和用户的主目录。我想这里最简单的方法可能是创建一个带有点前缀的文件,使其看起来不那么明显,然后给它一个名称,使其不明显地与我的应用程序相关联。
视窗
可能很像Linux/Mac当涉及到文件系统权限时,更新的Windows版本变得更加严格。
不管怎样,我想听听你的想法和想法。如果你在过去已经实现了类似的东西,那就更好了。
谢谢!
更新
对我来说,这类文件的位置比讨论这种复制保护方式是好是坏的问题更相关。
发布于 2010-05-01 02:04:23
谁在乎你把文件放在哪里。这是你想要保护的内容。
在服务器端,使用私钥加密/签名用户信息,并将其分发给用户。通过电子邮件发送一个许可证文件,让应用程序连接并下载它,无论是什么。
在您的应用程序中,包括公钥。如果无法对文件进行身份验证/解密,则失败。如果可以,请继续工作。如果无法验证许可证文件,则只需重新连接到服务器即可。你只需要最原始的“许可证服务器”来支持它。如果您通过电子邮件发送文件,则“许可证服务器”只是一个加密字符串并向用户发送电子邮件的脚本。
没有任何东西可以保护您免受复杂的黑客攻击。但此解决方案将拒绝临时用户破坏您的许可证。
如果您想要防止用户多次重新注册或与其朋友共享许可证文件,请在许可证文件中记录其MAC地址服务器端和。就个人而言,我不会这么做。它不会阻止老练的黑客,但你可以决定花多少时间在猫和老鼠的游戏中。
发布于 2010-05-01 01:25:51
对于Windows,您可以尝试使用Isolated Storage,它会将文件存储在产品的唯一位置,该位置通常足够模糊(并且具有相当深的路径),并且具有对开发人员完全透明的优点。
发布于 2010-04-29 21:16:19
POSIX系统应该将应用程序数据放在用户主目录下的隐藏文件中。Windows系统应该在CSIDL_APPDATA下放置一些东西。
https://stackoverflow.com/questions/2737511
复制相似问题