好的,我想使用在线激活来保护我的软件。用户将需要互联网连接,并且需要验证他们是否拥有有效的帐户/许可证才能继续使用该软件。所以我的软件会向我的网站发送一些凭据,在那里我将验证并发送回一些东西以允许程序运行或不运行。
这就是问题所在。如何防止有人欺骗我发回的简单的东西,完全绕过我的验证?
两个例子:
我记得在某处看到一个程序,它允许您监控互联网流量并在流量返回软件之前对其进行修改。我记不起名字了。实际上,在应用程序看到它之前,它是输出和输入计算机之间的中间人。比如你的浏览器发送了一个HTTP请求,这个程序可以拦截它并修改out包,或者反之,一些HTTP网页返回给浏览器,这个程序可以拦截并改变传入的包,然后将它传递给浏览器。
可以更改 HOSTS 文件以将流量重定向到任何地址。因此,如果有人知道我的验证将返回文本“ok_to_use”或“not_ok_to_use”,并且他们知道我用来验证的 url,那么他们可以使用 HOSTS 文件绕过我网站的 dns 查找,将其重定向到他们的自己的站点,并始终返回字符串“ok_to_use”
第二个例子说明了这个问题。我想我需要以某种方式返回静态字符串以外的东西。显然,我可以加密字符串,但很快就会发现“ok_to_use”等于“7hgx3a”,如果那是始终被发回的相同加密字符串。所以我需要发回一些一直在变化的东西。
编辑/
对于评论/回复说总会有一个最终的 if/then 检查标记许可证是否有效的应用程序:是的,那是真的。我在原始帖子的最后一段中暗示了这样的事情。也许让 web php 发回一些关键功能,这样即使 if/then 被跳过,如果没有执行 web 检查,那么某些功能的算法将不会被下载,并且应用程序将无法工作正确。有人有这种徒劳的想法吗?