最终(手指交叉)我想在市场上看到我的应用程序。我设想及时销售我的应用程序(每月,每年等),并且只有在他们的许可范围内才允许用户访问。例如,如果我要购买我的程序的一个月许可证,那么在购买之日起32天后,我将不再被授予对该应用程序的完全访问权限。
我想到的一些事情:
1)写入/读取注册表项(不推荐) - 在这种情况下,我将使用有关客户购买的加密信息创建注册表项,并让我的应用程序来回检查注册表,检查用户是否已经用尽了他的执照。
2)从网页上阅读(安全吗?不!) - 我正在考虑构建一个表格,其中包括有关我所有客户的信息(客户ID,购买的许可证,购买日期等)。同样,这些信息必须加密/解密,这根本不是问题。但是,如果客户关闭了他们的互联网连接怎么办?
您会说什么是存储/阅读客户信息的最有效和最智能的方法?
安全是关键!
谢谢你, 埃文
答案 0 :(得分:7)
最有效的是放弃创建一个完全安全的应用程序。任何真正想破坏安全系统的人都可以这样做,例如通过反编译代码并注释掉许可证检查。
我会在注册表或%appdata%的文件中使用简单存储(例如,以纯文本格式存储所有购买详细信息,以及DWORD字段中的校验和值)。对于大多数用户来说,它会比试图破坏安全性更容易付费。
要真正保护应用程序免受想要破坏它的人的攻击,您必须将应用程序逻辑的一些重要部分放在Web服务中,在您控制的服务器上,然后让所有客户端使用它。请注意,使用Web应用程序只检查有效性的Web服务是不够的,Web服务需要执行基本操作,程序将无法正常运行。然后剩下的“唯一”问题是如何验证和授权客户端使用Web服务并处理应用程序需要Internet访问的问题。您还必须考虑传输到服务器的数据的任何隐私/保密问题以进行计算。
这种方法几乎不值得,除非你有一个真正秘密,有价值的算法来保护。