我需要知道过去是否已经支付了安装费用,因此我可以提供一些高级功能。
在indexeddb或文件系统中存储付款标志听起来容易失败。定期询问服务器并缓存响应可以做到这一点,但我想用户必须始终登录(通过谷歌或其他方式),我宁愿不强加这种限制。
也许有一种方法可以唯一地识别用户的机器(uuid,mac地址等),这可以让我确定他们是否已经支付了这笔费用?
答案 0 :(得分:0)
所有方法,如uuid,mac地址等都可以轻松伪造imo。我认为你无法逃脱跟踪用户的登录状态。实现类似基于cookie的机制将是正确的方法。
答案 1 :(得分:0)
最终,这是客户端JavaScript。您可以阻止使用某些功能的唯一方法是将它们放在您的服务器上并为服务收费。
防止访问的一些弱方法包括许可证验证,并向服务器询问非必要信息(如果必要,请参阅上文)。
对于许可证验证,您可以创建一种算法,该算法从用户获取数据并将其转换为其他内容。例如,假设他们在您的网站上创建了一个帐户,您的服务器知道这是一个“专业”帐户。然后你可以拿出他们的名字和电子邮件地址并对其做一些魔术。
这是一个simple example,它接受这些输入并为我们提供密钥。在此示例中,如果我们的名字是“John”,而我们的电子邮件是“john@domain.org”,那么我们的密钥将是fcumnflqjpBfqockp0qtifcufLqjp
。但是,Tony和电子邮件“tony@doman.org”会收到fcumnfvqp{Bfqockp0qtifcufVqp{
您可以将此密钥发送给用户,并让您的代码决定是否可以通过应用反向算法来提取姓名和电子邮件。
你可以反转字符串,进行各种数学运算等。这是默默无闻的安全性。除了帐户,这是最常用的方法。它几乎被所有离线软件使用。它的kryptonite是关键的生成器,它可以对你的代码进行反向工程,并通过你用来验证它们的算法生成密钥。